Démarrer un prog avec un racourci clavier

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 10 mars 2005 à 13:59
PavICF Messages postés 17 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 14 avril 2007 - 10 mars 2005 à 14:46
Bonjour à tous...

J'aimerais savoir si c'est possible de démarer mon exécutable avec une touche (par exemple CTRL-F) dans windows. Bref pour pas que je sois obliger de cliquer sur le programme afin qu'il s'exécute.

Si c'est possible le code ressemble à quoi ???

Merci de votre aide

1 réponse

PavICF Messages postés 17 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 14 avril 2007
10 mars 2005 à 14:46
Tu peux faire ça avec un programme résident fait en C++.





Tu crée un projet "Win32 application" sans fenêtre (ou avec une fenêtre invisible) et une gestion simple des messages.





Dans le WinMain, tu utilise l'API RegisterHotKey pour créer ton raccourci clavier, puis, dans la WindowProc tu ajoute





case WM_HOTKEY:


Code pour lancer ton prog.





Par contre, tu devra lancer ton programme automatiquement à chaque démarrage de Windows.


Pour le faire, il faut que tu ajoute une clé dans la base des registres avec le nom et le chemin de ton programme ici:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run





exemple de code c++: (je ne l'ai pas testé)





int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


{


(Ici il faudra peut-être que tu ajoute une WNDCLASS pour passer l'adresse de la WindowProc)





RegisterHotKey(hWnd, 0x0101, MOD_CONTROL | MOD_SHIFT, VK_RETURN);





(le 0x0101 est un identifiant pour ton raccourci, tu peux en mettre un autre si tu le veux, là le raccourci clavier serait Ctrl+Shift+Enter, si tu veux voir comment paramétrer d'autres raccourcis, tape "RegisterHotKey" dans google et regarde la doc sur MSDN)





while(GetMessage(&msg, 0, 0, 0) == TRUE)


{


TranslateMessage(&msg);


DispatchMessage(&msg);


}





return msg.wParam;


}





long CALLBACK WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)


{


case WM_HOTKEY:


(Peut-être du code pour tester que c'est le bon ID de raccourci: 0x0101)


Code pour lancer ton prog.


break;





default:


return DefWindowProc(hWnd, message, wParam, lParam);


}


}





Voilà pour cette solution, mais il y a peut-être moyen de faire la même chose juste en plaçant ton raccourci dans la base des registres et en l'associant au lancement de ton programme, mais je ne pense pas que ce soit possible.
0
Rejoignez-nous