GetAsyncState "@" Zeichen abfangen...

Joshman

Mitglied
Hi.

Habe gerade ein Programm, das sich im Tray versteckt.
Es wird zur zeit mit der "F7"-Taste aufgrufen, was aber unglücklich ist.
Beispiel: Word macht dann eine Rechtschreibprüfung, und mein Programmfenster taucht auf.
Ich will dieses Verhalten ändern, und dachte es geht mit der "@"-Taste.

Code:
Public Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Dim lngKeyState As Integer = GetAsyncKeyState(System.Windows.Forms.Keys.F7)
        If CBool(lngKeyState And &H1) = &H1 Then
            Me.TopMost = True
            Me.Activate()
            Me.Visible = True
            Me.WindowState = FormWindowState.Normal             
        End If
    End Sub

Jetzt wollte Ich das so machen...

Code:
Public Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Dim lngKeyState As Integer = GetAsyncKeyState(40)
        If CBool(lngKeyState And &H1) = True Then
            Me.TopMost = True
            Me.Activate()
            Me.Visible = True
            Me.WindowState = FormWindowState.Normal
        End If
    End Sub


Geht aber nicht....

Wer kann mir auf die Sprünge Helfen....


THX Joshi.
 
Habe die Lösung gefunden........


Code:
        Dim lngKeyState As Integer = GetAsyncKeyState(&H64) 
'&H64 ist der richtige wert für das "@"-Zeichen
        If lngKeyState And &H1 = &H1 Then
            Me.TopMost = True
            Me.Activate()
            Me.Visible = True
            Me.WindowState = FormWindowState.Normal            
        End If


ACHTUNG!

Ich benutze einen Barcode Scanner, der das "@" ausliest und dann den Wert ausgibt,
aber drückt mann (frau) die Tastenkombination - Alt Gr + q - passiert nichts, deswegen bin ich erst nicht darauf gekommen.

Das ist ne gute Möglichkeit einen Globalen Hotkey für sein Programm zu setzen.

Viel Spaß. Joshi.
 
Zuletzt bearbeitet:
Zurück