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 Probème avec un hook [ par Chayy ] Bonjour,je rencontre actuellement un petit soucis avec un hook. J'essaye de poser un hook souris, et d'effectuer un traitement lorsque le pointeur de 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 Hook de la souris avec DLL (marche à moitié !? o_o ) [ par lol55 ] Bonjour à tous,Je cherche à faire un Hook Globale de la souris AVEC une Dll. Je me suis aider des nombreuses source sur CPPFrance,Voici mon code,Le co 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 ( 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")


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

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



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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 : 0,187 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é.