12. september 2003 - 15:13Der er
5 kommentarer og 1 løsning
Musseklik ved tryk på knap
Hey!!
Jeg er ved at lave nogle små forsøg, og mangler derfor en kode.. Koden skal kunne lave et musseklik ved tryk på en knap (fx. Ctrl-tasten). Musseklikket skal være det sted, hvor musen er placeret... Altså man flytter musseknappen fra selve musen, hen til fx Ctrl-tasten.
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function GetAsyncKeyState Lib "user32" ( _ ByVal vKey As Long) As Integer
Private Declare Sub mouse_event Lib "user32" ( _ ByVal dwFlags As Long, _ ByVal dx As Long, _ ByVal dy As Long, _ ByVal cButtons As Long, _ ByVal dwExtraInfo As Long)
Public Sub TheLoop() Const LoopHastighed As Long = 400 'Hastighed på Loop Static TickCount As Long Static LastTickCount As Long Do While blnLoopRunning TickCount = GetTickCount() If TickCount - LastTickCount > LoopHastighed Then LastTickCount = TickCount If GetAsyncKeyState(vbKeyControl) Then '1 Klik mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0& End If If GetAsyncKeyState(vbKeyShift) Then 'Dobleklik mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0& DoEvents mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0& End If End If DoEvents Loop End Sub
Private Sub Form_Activate() blnLoopRunning = True TheLoop End Sub
Private Sub Form_Unload(Cancel As Integer) blnLoopRunning = False End Sub '----------------------------------------- Form1 -----------------------------------------
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer) ShiftDown = (Shift And vbCtrlMask) > 0 If ShiftDown Then Label1.Caption = "der er trykket på Command1" End If Form1.SetFocus End Sub
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Command1.SetFocus End Sub
Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Command2.SetFocus End Sub
Private Sub Command2_KeyDown(KeyCode As Integer, Shift As Integer) ShiftDown = (Shift And vbCtrlMask) > 0 If ShiftDown Then Label1.Caption = "der er trykket på Command2" End If Form1.SetFocus End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.SetFocus End Sub
Øh, setfocus på formen virker ikke. I stedet skal man lave en ctrl, hvor visible er false, og alle de steder der står "form1.setfocus" skrive navnet på denne nye ctrl .setfocus
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.