begin process at 2010 02 10 05:43:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

Hook des touches F5 d'une autre appli


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Hook des touches F5 d'une autre appli

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ée 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 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 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


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales