Festgelegte taste

ATdrag0N

Erfahrenes Mitglied
Festgelegte taste

--------------------------------------------------------------------------------

Hallo,
ich arbeite mit visual basic 2008 hoffe das ich hier richtig gepostet habe,
wenn nicht verschiebt es doch bitte da hin wo es hin kommt.

Jetzt zu meiner frage:

ich habe folgenden Code der eine Anwendung minimiert:


Code:
Code:
    Private Sub cmdminimieren_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdminimieren.Click
        sTitle = "title der anwendung"
        lhWnd = FindWindow(vbNullString, sTitle)
        ShowWindow(lhWnd, AppWinStyle.MinimizedNoFocus)
        cmdmaximieren.Enabled = True
        cmdminimieren.Enabled = False
    End Sub
Dies geschieht aber über ein Button,
jetzt meine frage ich hätte das so das wenn man irgenteine festgelegte taste drücken tut auf der Tastatur das er das dann ausführen tut also das minimieren.

Ich hoffe es kann mir einer weiter helfen bei dem Problem.
 
Ich habe eine Funktion gefunden die das bewirken tut,
nur leider wenn das prog im vordergrund ist.
Es ist aber nicht immer im vordergrund und wenn es nicht im vordergrund ist soll es auch mit die tasten Funktionen gehen.

Hier mal der komplette Code:

Code:
Friend Class Form1
	Inherits System.Windows.Forms.Form

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
	
    Const VK_LWIN As Integer = 17        'leertaste
	
	Const KEYEVENTF_KEYUP As Integer = &H2
	
Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
        keybd_event(VK_LWIN, 0, 0, 0)
        keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
        Call Shell("notepad", AppWinStyle.MaximizedFocus)
    End Sub
End Class

Und wenn möglich sollte kein Button auf der Form sein.
 
Zuletzt bearbeitet:
Globale Key-Hooks sind in .NET nur über Umwege möglich. Am besten ist es, wenn du die GetKeyState() Methode der Win32-API verwendest und in einem eigenen Thread immer den Status der gewünschten Taste abfragst.

Die Funktion ist in der user32.dll

lg
 
Ja, das ist leider ein Nachteil, du musst ja immer ne Endlosschleife durchlaufen und den KeyState neu überprüfen.

Aber so ein großes Problem ist der eigene Thread ja auch nicht? Oder was genau stört dich daran?

lg
 
Kann mir keiner helfen ?

Ich habe hier eine Seite gefunden die mehre Tastenkombinationen abfangen kann,
nur leider ist dies nicht für Visual Basic 2008.

http://www.vbarchiv.net/archiv/tipp_1021.html

So etwas brauche ich, da mein Tool nicht immer im vordergrund ist.
Mit ein Code oder einer Seite wo ich mir das anschauen kann Wehr ich sehr dankbar.

Bitte helft mir bei diesem Problem.
 
Ist doch das was Kyoko meinte.
Über DLLImport kannst du auf die API Funktionen draufzugreifen (bei google gibts bestimmt auch treffer wo das schon jemand für dich gemacht hat ;), glaube beim TAO Framework müsste es mit bei sein)

Spyke (www.iv-interactive.de)
 
Zurück