Gezielten Tastendruck abfragen



  • Hallo an Alle,

    kann mir jemand sagen wie ich einen, oder mehrere, bestimmte tastendrücke abfragen kann?
    Am besten wär es, wenn es gleich die Pfeiltasten sind, aber mir wäre auch schon mit allen anderen geholfen.

    Ich arbeite mit MS VC++ 2008 Express Edition.

    MFG

    V.R.



  • if(GetAsyncKeyState(VK_CONTROL)&0x8000)
       {
       // Taste ist getrückt
       }
    
    if(GetAsyncKeyState(VK_LEFT)&0x8000)
       {
       // Taste ist getrückt
       }
    


  • Ich habe davon mal gelesen glaube ich... sind das diese Virtual Keys?



  • Ich habs versucht aber ich kann die Funktionen nicht finden wenn ich eine Windows Form Anwendung programmier. Nur wenn ich eine Konsolen Anwendung programmier.
    Muss ich noch irgendeinen Namespace einbinden?



  • Naja, Windows Forms Anwendungen sind was anderes als WINAPI-Programme, da - glaube ich - GetAsyncKeyState( ... ); ja in Windows.h zu finden ist. Möglicherweise findet sich in der MFC ne andere, gleichnamige Methode.

    Was Virtual Keys sind ist etwas schwerer zu erklären, finde ich...
    Wie dem auch sei, in dem Header-File "winuser.h" findest du sämtliche Virtual Key Codes!
    Such einfach Virtual oder sowas, dann findest du's schon...

    Wie auch immer, bin mir nicht ganz sicher und schreibe Windows Forms Anwendungen ausschließlich mit C#, mit C++ nur WINAPI.

    Hoffe ich konnte wenigstens ansatzweise helfen... xD



  • Wenn er WinForms Anwendungen schreibt sind diese .NET und damit kann er nicht direkt WinAPI-Aufrufe machen. Ob es in C# oder anderen .NET Sprachen ein Äquivalent gibt weiß ich jetzt nicht, es ist aber möglich diese Funktion zu importieren:

    [DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
    public static extern short GetAsyncKeyState(int vkey);
    

    Für weiteres siehe:
    http://msdn.microsoft.com/en-us/library/ms646293(VS.85).aspx



  • Danke

    wenn wir schon bei DLLs sind^^
    Kann mir einer den Code geben wie ich z.B. die Funktion Beep() einbinde und verwende?

    Die Funktion selbst brauch ich nicht aber mir geht es ums Prinzip.

    MFG

    V.R.


Anmelden zum Antworten