Hallo Experten!
Ich hab mal wieder ne Frage:
Wie kann ich abfragen, ob die linke Maustaste gedrückt wurde?
Vielen Dank im Vorraus
Rodario
Hallo Experten!
Ich hab mal wieder ne Frage:
Wie kann ich abfragen, ob die linke Maustaste gedrückt wurde?
Vielen Dank im Vorraus
Rodario
Hallo,
Wie kann ich abfragen, ob die linke Maustaste gedrückt wurde?
wo? Die meisten Steuerelemente kennen ein MouseDown-Ereignis und übergeben dort den Button. 1=links, 2= rechts.
Wenn Du den Mausklick global abfangen möchtest, also die Ereignisse der Steuerelemente nichts nützen kannst Du mit einem Timer auch per API-Aufruf ‚GetAsyncKeystate(1)‘ auslesen.
Gruß, Rainer
Code dazu
Hallo Rodario,
Beispielcode, wenn Du das mit der API probieren möchtest.
Beginne ein neues Projekt und lege nur einen Timer auf die Form. Dann füge den Code ein, starten …
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form\_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1\_Timer()
If GetAsyncKeyState(1) 0 Then
Me.Caption = "down"
Else
Me.Caption = "up"
End If
End Sub
Gruß, Rainer
Private Sub Timer1_Timer()
If GetAsyncKeyState(1) 0 Then
Me.Caption = „down“
Else
Me.Caption = „up“
End If
End Sub
Hallo Rainer,
ich spiel immer noch mit Optimierungsmöglichkeiten rum,
wäre denn
Private Sub Timer1_Timer()
Me.Caption = „up“
If GetAsyncKeyState(1) 0 Then Me.Caption = „down“
End Sub
nicht fixer?
Gruß
Reinhard
Hallo Reinhard,
wäre denn … nicht fixer?
das kann ich so exakt nicht sagen. Der Unterschied ist auf jeden Fall so gering, daß die Differenz nicht messbar ist. Der Code wird im Beispiel zehn mal pro Sekunde ausgeführt, das bedeutet eine Optimierung an der Stelle bringt exakt nichts.
Wenn man da wirklich etwas optimieren will, sollte man die Anzeige nur verändern, wenn ich der Zustand verändert hat, das ‚Me.Caption = …‘ einsparen, das bringt etwas! Hier ist das aber unwichtig, weil es ja um die Funktion ging, das in der Anwendung ohnehin nicht mehr vorkommen wird.
Gruß, Rainer
Methoden ‚OnEventXxx‘ ?
Hallo rainer,
kann man da nicht auch mit „OnEvent“-, „OnAction“-Prozeduren arbeiten?
Gruss
Laika
Hallo Laika,
kann man da nicht auch mit „OnEvent“-, „OnAction“-Prozeduren
arbeiten?
??? Du redest von VBA, stimmt’s? Da kenne ich mich nicht aus. In VB6 kenne ich OnEvent und OnAction nicht.
Gruß, Rainer
Hallo,
in den Formularen kannst Du bequem die Maus- und Tastaturereignisse verwalten mit
UserForm\_MouseDown()
UserForm\_MouseMove()
UserForm\_MouseUp()
Gruß, Bernd
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Rainer,
??? Du redest von VBA, stimmt’s? Da kenne ich mich nicht aus.
Ja, dafür kenne ich mich in VB nicht aus. Ich benutze das nur zusammen mit Excel.
In VB6 kenne ich OnEvent und OnAction nicht.
Ich habe noch nicht damit gearbeitet, nur gelesen in „VBA-Programmierung“ von Michael Kofler.
Gruß,
Laika
Hallo Laika,
??? Du redest von VBA, stimmt’s? Da kenne ich mich nicht aus.
Ja, dafür kenne ich mich in VB nicht aus. Ich benutze das nur
zusammen mit Excel.
das ist schön für uns, VBA-Experten haben wir hier immer zu wenig.
Der Bereich API ist bei VB6 und VBA identisch, da kann ich dann eventuell mal helfen.
Gruß, Rainer