Linke Maustaste außerhalb der Konsole abfragen
-
hustbaer schrieb:
Vielleicht solltest du die Doku zu GetAsyncKeyState nochmal lesen:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspxSpeziell
Return value
Type: SHORT
If the function succeeds, the return value specifies whether the key was pressed since the last call to GetAsyncKeyState, and whether the key is currently up or down. If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState. However, you should not rely on this last behavior; for more information, see the Remarks.
Danke für deine Antwort.
Was genau kann ich nun tun, um das was beschrieben wurde zu verhindern?
Oder gibt es eine Alternative um einen Mausklick (in einer Schleife) festzustellen?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wenn du GetAsyncKeyState verwenden willst, dann solltest du auf jeden Fall die Bits maskieren an denen du interessiert bist.
Üblicherweise nimmt man da nur eines, entweder das "ist gerade gedrückt" Bit oder das "wurde seit dem letzten GetAsyncKeyState Aufruf gedrückt" Bit, aber nicht beide.Ansonsten kannst du es mal mit Raw Input versuchen. Das sollte auch mit einer Konsolenapplikation gut funktionieren.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645543(v=vs.85).aspx
Wenn du WM_INPUT empfangen willst brauchst du natürlich ein Fenster. Das muss aber nicht sichtbar sein.
-
hustbaer schrieb:
Wenn du GetAsyncKeyState verwenden willst, dann solltest du auf jeden Fall die Bits maskieren an denen du interessiert bist.
Üblicherweise nimmt man da nur eines, entweder das "ist gerade gedrückt" Bit oder das "wurde seit dem letzten GetAsyncKeyState Aufruf gedrückt" Bit, aber nicht beide.Ansonsten kannst du es mal mit Raw Input versuchen. Das sollte auch mit einer Konsolenapplikation gut funktionieren.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645543(v=vs.85).aspx
Wenn du WM_INPUT empfangen willst brauchst du natürlich ein Fenster. Das muss aber nicht sichtbar sein.Danke. Wie sehe das genau aus?
-
...
-
Swordfish schrieb:
infopauer schrieb:
Danke. Wie sehe das genau aus?
In Visual Studio viel Schwarz und ein wenig Blau und Rot auf weißem Grund.
Wäre nett, wenn es mir jemand demonstrieren könnte.
-
VIel besser:
ReadConsoleInput
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684961(v=vs.85).aspx
-
infopauer schrieb:
Danke. Wie sehe das genau aus?
Lern C++
-
#include <iostream> #include <Windows.h> using namespace std; int main () { while(1) { Sleep(1); // Ohne Sleep 100% CPU Auslastung bei älteren Computern if ( GetAsyncKeyState(VK_LBUTTON) { cout<<"Link Maustaste wurde gedrueck\n"; } } }
-
fenster position und größe deines wnd abfragen und dann checken ob die maus sich auserhalb befindet.
stichwort GetWindowRect. obs mit consolen wins funct kA