Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Hook des touches F5 d'une autre appli [ Windows / MFC ] (Kheo)

dimanche 9 décembre 2007 à 20:27:21 | Hook des touches F5 d'une autre appli

Kheo

Bonjour,

Est ce que quelqu'un pourrait me donner quelques infos sur la méthode à employer pour capter des touches dans une autre appli.
En fait je veux executer du code lorsque que j'appuie sur la touche F5 alors que le focus est sur une application cible.
Je veux détourner la touche F5 de cette appli vers mon code.

J'ai laborieusement essayé de trifouiller avec setWindowsHookEx, mais ca n'est pas très concluant.
Si vous aviez un ou deux sources exemple, ca pourrait m'aider, merci.

/ Kheo /

dimanche 9 décembre 2007 à 20:34:47 | Re : Hook des touches F5 d'une autre appli

juju12

Ben cherche "hook" sur le site y a plein de sources qui font ça.

lundi 10 décembre 2007 à 13:08:03 | Re : Hook des touches F5 d'une autre appli

julienbj

En voici une de racpp ici qui montre un bel exemple de hook clavier.
A toi de faire ensuite le code correpondant à ce que tu désires.

--
Vive le C
Développeur hard/soft chez AGILiCOM
Savon

lundi 10 décembre 2007 à 13:46:56 | Re : Hook des touches F5 d'une autre appli

Kheo

Oui c'est un très bon exemple que j'ai déjà croisé, et que j'ai utilisé comme référence.
Mais comment restreindre le hook sur une appli en particulier. Cette appli en l'occurence je la récup a grand coup de EnumWindows de la lib psapi.

/ Kheo /

lundi 10 décembre 2007 à 14:01:20 | Re : Hook des touches F5 d'une autre appli

SAKingdom

Membre Club
Là je vais proposer quelque chose. Je ne l'ai jamais essayé et je ne sais donc pas si ça fonctionne.

1. Trouve et stock le HWND de la fenêtre avec FindWindow.

2. Lors du hook, récupère la fenêtre qui est en premier plan avec GetForegroundWindow.

3. Compare ensuite les 2 HWND.

C++ (@++)


lundi 10 décembre 2007 à 14:40:40 | Re : Hook des touches F5 d'une autre appli

julienbj

Comme le dit SAKingdom, récupère comme tu peux le handle de la fenetre que tu veux "hooker".
Ensuite, lorsque dans ton hook tu es averti de l'appui sur la touche F5, compare ce handle avec celui de la fenetre active ou regarde si la fenetre que tu veux hooker estactive (IsWindowEnabled).

Je ne sais pas laquelle des deux méthodes est la plus rapide (GetForegroundWindow ou IsWindowEnabled). SAKingdom?


if (iCode < 0 || iCode != HC_ACTION)
    return CallNextHookEx(ghKbrdHook, iCode, wParam, lParam);

if (wParam == VK_F5)
{
    if (IsWindowEnabled(ghWnd)) // F5 pressed in main window?
    //Ce que tu veux faire
    else
         return CallNextHookEx(ghKbrdHook, iCode, wParam, lParam);
}


--
Vive le C
Développeur hard/soft chez AGILiCOM
Savon

lundi 10 décembre 2007 à 19:03:42 | Re : Hook des touches F5 d'une autre appli

Kheo

Ok merci les gars... trop bon je vais me tester ca dès que possible. J'étais tout simplement parti sur une autre piste ou je ne "hookais" que ma fenetre, alors qui faut faire un hook global est filtrer les messages.

Je vous confirme tout ca dès que j'ai testé !

/ Kheo /

lundi 10 décembre 2007 à 21:25:53 | Re : Hook des touches F5 d'une autre appli

SAKingdom

Membre Club
La plus rapide entre GetForegroundWindow et IsWindowEnable, je l'ignore (c'est brunews qui a les sources de windows ici) mais je pencherais pour IsWindowEnable.

C++ (@++)


lundi 10 décembre 2007 à 23:25:13 | Re : Hook des touches F5 d'une autre appli

BruNews

Administrateur CodeS-SourceS
GetForegroundWindow() est quasi instantané, ce handle est toujours maintenu pour y diriger les input events (entre autre).

ciao...
BruNews, MVP VC++

lundi 10 décembre 2007 à 23:33:33 | Re : Hook des touches F5 d'une autre appli

julienbj

Merci Brunews pour cette information.
J'aurais comme SAKingdom penché sur IsWindowEnable, comme quoi, les apparences sont parfois trompeuses, même en prog!

--
Vive le C
Développeur hard/soft chez AGILiCOM
Savon



Cette discussion est classé dans : appli, code, touches, hook, f5


Répondre à ce message

Sujets en rapport avec ce message

Hook intercepté ?? [ par mlarrere ] Je souhaite utiliser un hook keyboard pour intercepter des touches et les renvoyers différemment.C'est un hook global (DLL) car c'est pour une appli e Combo des touches dans un Hook [ par bdkiller ] Salut,encore moi avec les Hooks xDJ'arrive à mettre les hook en place, ca marche, sauf que je sais pas comment faire pour intercepter la combinaison d Hook sur notepad [ par aztcaLISS ] Salut, J'essaye de comprendre les hooks.J'ai regarder le code de racpp: http://www.cppfrance.com/codes/HOOK-GLOBAL-SANS-DLL_27169.aspxJe l'ai compil Programme tournant en permanence [ par oceax ] Salut !Voilà j'aimerai faire une appli dont le code s'execute quand une fenetre est ouverte..Voici ce que j'ai tenté :while(FindWindow(NULL,"MyApply") Code ASCII [ par SuperDoudou ] SuperDoudouJe n'arrive pas trouver les touches dont les codes ascii sont 224 et 13.De +, est-ce que je me trompe si je pense que les codes ascii des [C] Interdire l'accès à certaines touches [ par Cow_B ] SalutBon, cette fois ci mon souci est le suivant : je demande à un utilisateur de rentrer un chiffre kelkil soit. Le problème c'est que si la personne Hook drag and drop [ par kakai ] J'ai un grand besoin d'aide. <P class=MsoNormal style Touches du clavier dans MFC [ par morganroux ] J'ai créer une appli en boite de dialogue MFC. J'utilise Visual Studio 2003 .NET et je programme en c++Le problème que j'ai c'est que lorsque j'appui Hook messages de windows [ par deck_bsd ] Bonjour a tous,Voila je suis sur le point de finir mon 1er hook, mais voila , il ne fonctionne que une fois. Il intercepte une fois le message voulu ( cherche code en c pour clavier 16 touches [ par krimzoug ] bonjour a tous je suis etudiant en conception electronique et j'ai mon prof qui nous a demandé de faire une fonction en c pour decoder un clavier 16 t


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,342 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.