Delphi:Touche clavier pour activer un bouton

linkcr15 Messages postés 423 Statut Membre -  
 play92 -
Bonjour,

Je suis en train de créer un programme en Delphi. Je souhaite programmer un bouton du clavier (genre F11) qui effectuerai une action dans mon programme même si mon programme n'est pas en premier plan. Est-ce que cela est possible? Si oui, comment le faire svp?

Merci d'avance pour vos réponses!

5 réponses

  1. play92
     
    Bonjour, linckrc15
    Je ne sais pas si depuis tu as trouvé une réponse , mais au cas-ou voici une solution. Dans un TIMER tu mets :
    If GetAsyncKeyState(122)<>0 then ' ta commande '; //122=F11
    Règle l'Inteval du timer à 200 pour une réaction rapide et voila ça marche même si ton appli n'a pas le focus.
    3
  2. nicocorico Messages postés 846 Statut Membre 138
     
    Rien n'est impossible, mais ça c'est pas très simple...
    Je crois que le seul moyen c'est de mettre un hook clavier en place, via SetWindowHook avec Wh_Keyboard et une KeyboardProc...
    0
  3. linkcr15 Messages postés 423 Statut Membre 12
     
    Euh oué j'aimerai bien mais j'ai rien compris! ^^
    0
  4. nicocorico Messages postés 846 Statut Membre 138
     
    Je vais essayer d'être plus clair :
    La fonction SetWindowHook sert à insérer une procedure dans la chaine des procédures appelées lors d'un évènement, dans le cas présent un évènement clavier, donc à chaque frappe d'une touche du clavier, quelque soit l'application focus, la procédure que tu met en place est appelée, puis celle-çi appelle la suivante etc...

    Définition de SetWindowHookEx :
    HHook SetWindowHookEx( 
       int idHook,      // type de hook = Wh_Keyboard    
       HOOKPROC lpfn,	// adresse de la procedure à appeler
       HINSTANCE hMod,	// handle de l'application (Application.Handle)   
       DWORD dwThreadId // Handle du thread de la procedure- tu peux mettre 0   
    );	
    


    Tu trouveras cette définition dans le win32sdk...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. linkcr15 Messages postés 423 Statut Membre 12
     
    Ok merci quand même mais je crois que je vais pas y toucher. Est-ce qu'il existe un logiciel qui permettrai d'utiliser un programme comme s'il était au premier plan alors qu'il est en second plan?
    0