[VB 2010] Keypress ausserhalb des Forms erkennen

Brothers

Mitglied
Guten tag,
ich hoffe ich bin hier einigermaßen richtig.:rolleyes:

Ich möchte ein Programm schreiben das minimiert oder besser noch vom Systemtray herraus überwacht ob eine taste (zb. Strg) gedrückt wurde.

Im Programm selber ist das kein problem aber wie realisiere ich es das auch ausserhalb des Programms die Tasten überwacht werden?
 
Das geht mit der GetAsyncKeyState-API:
Visual Basic:
Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal nVirtKey As Keys) As Short
Der Aufruf erfolgt so:
Visual Basic:
If GetAsyncKeyState(Tastencode) = -32767 Then 'Taste gedrückt


Der Doc!
 
danke erstmal!

Und wie realisiere ich das ständig geprüft wird? hatte als Test "Form1_Load" benutzt. Aber das wird ja nur einmal abgefragt
 
Also irgendwie verstehe ich nicht ganz was du mit Asciicode meinst...

In der Dokumentation zu der Funktion gibt es ein Link in den alle "Virtual Keys" aufgelistet sind, und da gibt es auch die die Maustasten.

Guck dir mal VK_MBUTTON, VK_XBUTTON1, VK_XBUTTON2 an.
 
Jetzt bin ich total verwirrt!

Dann sollte es deiner meinung nach für die linke maustaste also so aussehen?:

If GetAsyncKeyState(VK_LBUTTON) = -32767 Then
tester1.Text = "linke maustaste gedrückt!"
End If

wenn ich es mit ascii codes mache funktioniert es:

If GetAsyncKeyState(32) = -32767 Then
tester1.Text = "leertaste gedrückt"
End If


Bitte ein beispiel
 
Zuletzt bearbeitet:
Das ist nicht seiner Meinung nach so, sondern das steht hier in den Remarks in der Dokumentation:
http://msdn.microsoft.com/en-us/library/ms646293(v=vs.85).aspx

Es ist übrigens auch so, dass die Dokumentation nur über die Bits 0 und 15 etwas aussagt, nicht aber über alle anderen, daher ist theoretisch (ich sage bewusst theoretisch) folgende Überprüfung kluger:
C#:
short keyState = GetAsyncKeyState(VirtualKeyCodes.VK_LBUTTON);
if((keyState & 0x8001) != 0)
       pressed or pressed since last check;

In der Realität wirst du nichts anderes finden, aber ich finde es wichtig sich solcher Sachen immer bewusst zu sein beim Programmieren.
 
Ihr macht mich fertig....

Ich versteh nur noch Bahnhof!

Kann mir nicht einer ein Beispiel posten? so eins das auch ich verstehe.
 

Neue Beiträge

Zurück