Leertasten Hotkey

galaxyo124463

Grünschnabel
Hallo, ich möchte einen Leertasten Hotkey machen und habe diesen code gefunden

If GetKeyPress(vbSpace) Then Timer2.Interval = 1
If GetKeyPress(vbSpace) Then Timer2.Interval = 0

Aber das funktioniert nicht!!

Danke schonmal für Hilfe

greetz
 
Das wenn ich dann Leertaste drücke das die funktion aktiviert wird!
Ich hab das schon für ne andere mit rechtsklick und das funktioniert nur anstatt dem space das da RightButton steht. Und das mit Interval = 0 das funktoniert auch bei dem Rechtsklick
 
Wieso machst dus nicht so:

Code:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeySpace Then
  'Hier dein Code
End If
End Sub
 
^^ Danke funktioniert Super!

Nächste Frage:

Ich wollte das so machen das wenn ich eine Check Box habe das erst wenn dort der Hacken gemacht wurde das die funktion dann erst aktiviert wird mit dem Hotkey also wenn der Hacken in der Check Box drin ist möchte ich das der Hotkey beim drücken die gewünschte funktion aktiviert und wenn der Hacken aus der Check Box ist das ich dann z.b. Leertaste drücken kann aber die funktion nicht aktiviert wird!

Danke für Hilfe^^

Gruss
 
Umschliesse das Ganze einfach mit eine einfachen If-Then Abfrage innerhalb des KeyDown-Ereignisses.

Zum Beispiel:
Code:
If CheckBox1.Value = 1 Then
 "Code für den Hotkey"
Else
 Exit Sub
End If
 
Ich hab das gemacht und das sieht so aus:

If CheckBox8.value = 1 Then
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeySpace Then
Dim SJ As Long
Dim SJ1 As Long
Dim SJ2 As Single
Call ReadALong("WarRock", &H8B5288, SJ)
SJ1 = SJ + &H180
SJ2 = Text2.Text
Call WriteAFloat("WarRock", SJ1, SJ2)
Else
Exit Sub
End If

Aber das funktionirt nicht. die funktion wird trotzdem aktiviert wenn ich Leertaste drücke auch wenn der Hakcen aus der Check Box raus is
 
Du kannst die If-Then-Abfrage nicht ausserhalb einer Prozedur setzen. Versuche es mal so:

Code:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim SJ As Long
Dim SJ1 As Long
Dim SJ2 As Single

If CheckBox8.value = 1 Then
  If KeyCode = vbKeySpace Then
  Call ReadALong("WarRock", &H8B5288, SJ)
  SJ1 = SJ + &H180
  SJ2 = Text2.Text
  Call WriteAFloat("WarRock", SJ1, SJ2)
Else
  Exit Sub
End If

End Sub

Auch die Variablendeklaration solltest Du (schon der Übersicht wegen) immer am Anfang der Prozedur setzen. Wenn diese Variablen noch in anderen Funktionen oder Prozeduren benutzt werden musst Du sie ganz am Anfang, ausserhalb aller Funktionen und Prozeduren setzen.

Zm Beispiel so:

Code:
Option Explicit
Dim DeineVariable As ....usw

'Ab hier Deine Prozeduren und Funktionen
 
Zurück