2014-07-11 1 views
-1
#include "windows.h" 
#include "iostream" 
#include "winuser.h" 

using namespace std; 

bool disabled; 

int main() 
{ 
    disabled = true; 
    cout << "Press INSERT to toggle me on/off. Initially, I am disabled." << endl; 
    a: 
    if(GetAsyncKeyState(VK_INSERT)){ 
     disabled = false; 
    } 
    while(disabled == true){ 
     goto a; 
    } 
    while(disabled==false){ 
     while(GetAsyncKeyState(0x51)){ 
      keybd_event(0x67,0x67,KEYEVENTF_EXTENDEDKEY, 0); 
     } 
    } 
    return 0; 
} 

Ceci est juste un simple prog destiné à supprimer l'entrée de Q et envoyer 7 à la place.Problèmes avec keybd_event

Cependant, si j'ouvre le bloc-notes et un essai, les résultats sont comme q7777777777777777777777q777777777777777777777777777777777q777777777777777777777777q77777777777777

Je ne veux pas que mon clavier pour envoyer q, comment puis-je résoudre ce problème?

Comment puis-je créer une brève pause comme si vous mainteniez une touche normale enfoncée? Par exemple, si je maintiens 'a' en ce moment:

aaaaaaaaaaaaa Il y a une brève pause après la première a et ensuite elle continue à la spammer. Comment puis-je répliquer cela?

+1

Depuis le début de la documentation: * Cette fonction a été remplacée. Utilisez SendInput à la place. * Et pour remplacer Q par 7, utilisez simplement AutoHotKey. ':: Q :: 7' – chris

Répondre

0

Pour intercepter les événements clavier, utilisez la fonction SetWindowsHookEx avec l'argument WH_KEYBOARD_LL.

De plus, keybd_event simule une pression de touche, mais vous devez également simuler une libération de clé en appelant keybd_event la deuxième fois avec l'indicateur KEYEVENTF_KEYUP.