HOOK SUR CLAVIER

cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008 - 31 déc. 2003 à 01:32
tularis Messages postés 21 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 12 juillet 2009 - 25 mars 2007 à 18:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19107-hook-sur-clavier

tularis Messages postés 21 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 12 juillet 2009
25 mars 2007 à 18:03
bon bah,
c'est ce que je pensais, c'est une site d'amateur ...
Aucun filtrage des source, aucune exigence.
Encore une grosse deception, non respect des normes,
code non commenter, ...
Je retourne sur developez.com et sur la msdn, ici je perd mon temps.

Peut etre que quand j'aurai le temps, je devrai faire un site comme celui ci mais avec de la qualité ...
cs_LaPatoshe Messages postés 53 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 décembre 2009
6 janv. 2005 à 00:09
bon programme pour apprendre, merci
cs_seed Messages postés 99 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 19 mars 2005
29 août 2004 à 23:43
Merci je vien de mieu comprendre grace à ca :
http://www.cppfrance.com/code.aspx?ID=21438

En faite c'était pas une mauvaise question ;-)
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
29 août 2004 à 22:55
Bonjour, la dll n'est pas chargée dynamiquement avec loadlibrary, mais statiquement. le fichier de librairie est lié statiquement à l'édition de lien avec le .lib.
cs_seed Messages postés 99 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 19 mars 2005
29 août 2004 à 22:43
Bonjour je viens de regarder ta source et en effet ca marche par contre je suis un peu étonné car je ne vois pas du tout ou tu charges la dll

Aucun fichier ne contient une loadLibrary comme sous BCB

Je me doute que ca doit etre dans les configs de VC++ que je ne maitrise pas du tout mais j'ai beau chercher je ne trouve pas ou tu as préciser de charger la DLL.

Pouriez vous m'éclairer un peu svp Merci
cs_mat74 Messages postés 241 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 16 juin 2010
27 juil. 2004 à 16:52
scuz , en fait je croyais que ton prog ne fonctionnai pas car je n'avai pas de fichier log mais en fait apres avoir regarder le code j'ai vu que tu avais enregistrer le fichier log sur D et vu que mes partition son C,E,F ( ouai je sais po tres logique ms bon ) je ne trouvais pas de fichier log.
cs_mat74 Messages postés 241 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 16 juin 2010
27 juil. 2004 à 16:51
scuz , en fait je croyais que ton prog ne fonctionnai pas car je n'avai pas de fichier log mais en fait apres avoir regarder le code j'ai vu que tu avais enregistrer le fichier log sur D et vu que mes partition son C,E,F ( ouai je sais po tres logique ms bon ) je ne trouvais pas de fichier log.
cs_mat74 Messages postés 241 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 16 juin 2010
27 juil. 2004 à 16:51
scuz , en fait je croyais que ton prog ne fonctionnai pas car je n'avai pas de fichier log mais en fait apres avoir regarder le code j'ai vu que tu avais enregistrer le fichier log sur D et vu que mes partition son C,E,F ( ouai je sais po tres logique ms bon ) je ne trouvais pas de fichier log.
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
27 juil. 2004 à 07:17
ben si ...
sinon, tu peux aussi faire autre programme qui au début crochete le clavier et le retourne à la normale à la fin, sur le meme schema que mon programme de test
cs_mat74 Messages postés 241 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 16 juin 2010
26 juil. 2004 à 23:53
ben je sai po qd j'execute le programme teste , rien ne se passe , pendant les 15s qu'il reste actif . il ne devait po enregistrer les touches pressées ds un fichier
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
26 juil. 2004 à 21:52
c'est quoi le probleme ? je n'ai pas compris ...

bon, je crois effectivement que je me suis gourré, si tout le monde le dit, c'est que j'ai du mal comprendre ce détail ; et bien, dans ce cas, augmentons la taille du tableau de 1 :)
cs_mat74 Messages postés 241 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 16 juin 2010
26 juil. 2004 à 21:31
voila j'ai regarder ta source , c'est exactement dont j'avais besoin mais ia un pb je sais pas comment complete le teste pr que sa marche correctement .

@+
gabuzomeuh Messages postés 53 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 28 mars 2007
4 mai 2004 à 23:28
hilairenicolas>

Bah oui

char findeligne[1] c'est un tableau a une seule case
char findeligne[2] c'est un tableau a 2 cases

la 1ere case du tableau c'est finDeLigne[0]
le 2eme case du tableau c'est finDeLigne[1]

donc il faut bien un tableau a 2 cases
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
4 mai 2004 à 23:13
hilairenicolas> char finDeLigne[1]; : tableau de 1 élément, donc finDeLigne[1] n'exite pas
plutot qu'un while, tu devrais utiliser un sleep qui utilise moins (pas) d'UC
gabuzomeuh Messages postés 53 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 28 mars 2007
4 mai 2004 à 22:09
salut

J'ai récupéré VC++ 6.0 .

La compilation de ta Dll avec VC++ fonctionne, j'ai plus qu'a modifier le tout et je depose le résultat ici.
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
4 mai 2004 à 08:41
en fait, le coup du gettickcount, j'ai fait ca parce que j'avais la flemme de faire autre chose pour illustrer le fonctionnement, mais tu peux très bien mettre une appli, une dialog box, ou autre chose, ca ne gene pas
gabuzomeuh Messages postés 53 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 28 mars 2007
3 mai 2004 à 23:46
salut

- Je parle de boucle sans fin car toi tu utilises GetTickCount pendant 15 secondes mais pour que ca fonctionne en permanence il faut une boucle sans fin ce qui fait passer la charge du processeur à 100% dans le gestionnaire de taches meme pendant les 15 secondes. Moi je voudrais utliser le hook en permanence donc il faut une boucle sans fin qqpart.

- j'arrive à compiler ta dll sous borland 5.02 en enlevant #pragma comment(linker, "/SECTION:.maSection,RWS") mais quand je fais un getprocaddress des fonctions ca retourne 0.

ca m'enerve ! :)
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
3 mai 2004 à 18:56
Salut,
- pourquoi tu parles de boucle sans fin ?

- j'ai pas utilisé borland pour compiler, mais je pense qu'à part refaire un projet et y mettre les sources dedans, ca devrait marcher sans problème
gabuzomeuh Messages postés 53 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 28 mars 2007
2 mai 2004 à 23:53
salut

pas mal pour la dll mais 2 petits problemes:

1°) pour utiiser la dll correctement il faut l'introduire les fonctions dans une boucle sans fin ce qui fait passer la charge du processeur à 100%

2°) j'arrive à charger la dll dans un autre programme mais la recompiler avec borland c++ 5.02 et la charger ne fonctionne pas
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
19 avril 2004 à 13:48
t'es sur de toi vecchio ?
je m'en sers de cette façon :

char finDeLigne[1];
finDeLigne[0]=(char)0x0D;
finDeLigne[1]=(char)0x0A;

WriteFile(fichier,finDeLigne,2,&octetsEcrits,NULL);

et uniquement comme ça
donc, j'écris bien 2 octets
c'est sur que si j'avais mis strlen(finDeLigne) ca aurait jamais marché
mais là, je crois que c'est bon
bien sur, par précaution (et on est pas à 1 octet pret en mémoire), il vaut peut-etre mieux ta solution mais je crois que la mienne fonctionne

A suivre ...
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
16 avril 2004 à 18:35
tu as une petite erreur dans hookClavier.cpp:

char finDeLigne[1];
finDeLigne[0]=(char)0x0D;
finDeLigne[1]=(char)0x0A;

il faut évidemment mettre

char finDeLigne[2];
finDeLigne[0]=(char)0x0D;
finDeLigne[1]=(char)0x0A;
largoce Messages postés 9 Date d'inscription samedi 27 décembre 2003 Statut Membre Dernière intervention 14 février 2005
9 janv. 2004 à 22:24
Ben de toute façon que ça soit avec ce zip ou un autre, j'ai toujours des messages d'erreurs... uniquement quand ça touche Win32 (enfin je crois). Pour les appli sous dos y a pas de problème. Quand je simule un appuie de touche de clavier ça marche.
J'ai la bible de prog de Kris Jamsa, et les exemples fournis sur CD ne marche pas non plus.
J'ai installé Visual studio 6, idem.
Pour le fichier de 40Ko, c'était justement le truc simulant des touches clavier enfoncé. Rien d'extraordinaire.
Et il est autonome je l'ai envoyé à un pote qu'à aucun logiciel de C/C++. Pour simuler un appuie sur 2 touches je pense que c'est carrément trop.
J'ai télécharger un truc (je sais plus lequel) du site, que j'ai pu compilé, et c'est quand j'ai vu la différence de poid avec celui qui été dans le zip que je me suis posé des questions.
Sinon je m'en serais pas aperçu.
J'ai DevC++ mais je crois qu'il me boude. Je compile, quand je veux exécuter il me dit que j'ai pas compiler.
Je sais que ce problème vient de moi, mais je ne sais d'où.
Pour couronner le tout, dans lcc j'ai pas les includes VCL.
Je vais essyer de trouver visual 2003, C mon dernier recours.

Pourtant tout marche bien sur ma bécane, 3DSMAX5, serveur php,...
Mais tout ce qui touche au C++, niet.
Si vous avez des idées n'hésitez pas.
Merci.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
9 janv. 2004 à 21:18
#pragma fonction avec BCB, j'en suis sur à 100%
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
9 janv. 2004 à 19:59
Aucune idée ... peut-etre que le #pragma ne fonctionne pas avec borland, mais ca m'etonnerait pourtant.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
9 janv. 2004 à 19:28
et en plus l'exe de 40Ko de BCB6 n'est pas autonome ^^ si tu le compile en autonome tu obtiendras minimum 500Ko :-P
largoce Messages postés 9 Date d'inscription samedi 27 décembre 2003 Statut Membre Dernière intervention 14 février 2005
9 janv. 2004 à 14:46
Bonjour,
J'ai un message d'erreur quand je veux compiler ta source à la ligne:
hookClavier = SetWindowsHookEx(WH_KEYBOARD, fonctionIntercepteClavier, moduleCourant, 0);

le message d'erreur:
[C++ Avertissement] hookClavier.cpp(9): W8094 Utilisation incorrecte de #pragma comment( <type> [,"string"] )
[C++ Erreur] hookClavier.cpp(101): E2034 Impossible de convertir 'long (__stdcall *)(int,unsigned int,long)' en 'int (__stdcall *)()'
[C++ Erreur] hookClavier.cpp(101): E2342 Mauvaise correspondance de type dans le paramètre 'lpfn' ('int (__stdcall *)()' désiré, 'long (__stdcall *)(int,unsigned int,long)' obtenu)

Bon d'accord, ça fait 3 ;-)
T'inquiète pas, je pense pas que ta source soit en cause.
J'ai C++ Builder 6 version entreprise (trial, télécharger sur le site de Borland) et j'ai toujours des erreurs de ce style à chaque fois que la source requiert une fenêtre et des fois pour autre chose.
Aurais-tu une idée ?
Sinon j'ai remarqué qu'en compilant avec lcc, un fichier .exe faisait 4 ko au lieu de plus de 40 ko compiler avec C++ Builder 6 ?
C'est koi l'arnaque ?
Qu'est-ce qu'il foute dedans pour décupler la taille ?
Merci pour vos aide.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
31 déc. 2003 à 01:32
http://tcharles.developpez.com/simul/

hooks avec Delphi ou Borland C++ Builder si ça peut aider qq un,

bonne journée ;-)
Rejoignez-nous