2016-12-20 7 views
1

Hey Leute, ich benutze Codeblocks von C. Ich lese https://msdn.microsoft.com/en-us/library/windows/desktop/ms646301(v=vs.85).aspx, aber ich kann nicht verstehen, was ich in diesem Code ändern muss, um es Groß-und Kleinschreibung zu beachten.Wie kann ich GetKeyState die Groß- und Kleinbuchstaben verstehen

void getInput() 
{ 
    while(1) 
    { 
     if((GetAsyncKeyState('A') & 0x8008)) { 
      printf("qwe"); 
     } 
    } 
} 

Code funktioniert und ich bekomme keine Fehler. Das einzige Problem ist, dass dies nicht zwischen Drücken a oder A unterscheidet, es wird qwe in beiden Fällen drucken. Wie kann ich das beheben? .

+0

Was ist das Problem? Sie möchten es 'qwe' drucken oder wollen es nicht drucken? –

+0

Wenn ich A drucke, möchte ich, dass es qwe druckt. Aber wenn ich 'a' drücke, möchte ich nicht, dass es qwe druckt. –

+3

Sie sollten dann auch den Status der 'shift' Taste überprüfen. Vielleicht auch "Feststelltaste". –

Antwort

0

Dank @EugeneSh, Lösung den Zustand VK_CAPITAL zu prüfen ist, ob Shift- auf ist:

if((GetAsyncKeyState('A') & 0x41) && GetKeyState(VK_CAPITAL)) { 
    key_pressed=KEY_A; printf("qwe"); 
} 
if((GetAsyncKeyState('B') & 0x8008) && !GetKeyState(VK_CAPITAL)) { 
    key_pressed=KEY_B; printf("asd"); 
} 
Verwandte Themen