hotkey = sendkey

Status
Niet open voor verdere reacties.

gabber1

Gebruiker
Lid geworden
4 mei 2007
Berichten
143
waarom werkt deze code niet?
PHP:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Debug.Print KeyCode & " " & Shift

Select Case True


Case KeyCode = vbKeyC And (Shift = vbAltMask)



SendKeys "alt+c", true


Case KeyCode = vbKeyS And (Shift = vbAltMask)
SendKeys "Alt+S", true




Case KeyCode = vbKeyM And (Shift = vbAltMask)
Debug.Print "Alt M"
SendKeys "alt+m", true



Case KeyCode = vbKeyM And (Shift = vbCtrlMask)
Debug.Print "Ctrl M"
SendKeys "crtl+m", true

End Select

End Sub
 
omdat je een select case doet met True

en true is wat? een boolean? staat nergens anders ;)
 
goedemorgen

waarom gebruik je 'Sendkeys' als je deze toetsen al indrukt?
 
agree, zo krijg je dus dubbele keys ;)

(maar waarschijnlijk wilt de TS de keys veranderen ofzo, of ze in zijn app inbouwen met functies)
 
Wat kun je beter if..then gebruiken in de trent van:
Code:
   If (KeyCode = vbKeyC) And (Shift = vbAltMask) Then
      SendKeys "alt+c", true

   ElseIf (KeyCode = vbKeyS) And (Shift = vbAltMask) Then
      SendKeys "Alt+S", true

   ElseIf (KeyCode = vbKeyM) And (Shift = vbAltMask) Then
      Debug.Print "Alt M"
      SendKeys "alt+m", true

   ElseIf (KeyCode = vbKeyM) And (Shift = vbCtrlMask) Then
      Debug.Print "Ctrl M"
      SendKeys "crtl+m", true

End If
 
goedemorgen

als je een hotkey wilt gebruiken kun je beter als volgt doen:
een TIMER (Timer1) toevoegen aan je project en de interval instellen op 200 of 300.

---
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Form_Unload(Cancel As Integer)
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyF9) Then
MsgBox "OK!", vbExclamation, "Hot Key Pressed"
End If
End Sub
---

er zijn nog meer mogelijkheden, maar dit is de simpelste.

ab
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan