Mausklick abfragen

Von: , Frage gestellt am Mo, 29. Okt 2007

Hallo Experten!

Ich hab mal wieder ne Frage:

Wie kann ich abfragen, ob die linke Maustaste gedrückt wurde?

Vielen Dank im Vorraus

Rodario

9 Antworten zu dieser Frage

  1. Antwort von nach 22 Minuten 0 hilfreich
    Re: Mausklick abfragen

    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

  2. Antwort von nach 57 Minuten 0 hilfreich
    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

    • Antwort von nach einer Stunde 0 hilfreich
      Re: Code dazu

      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

      • Antwort von nach 2 Stunden 0 hilfreich
        Re^2: Code dazu

        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

    • Antwort von nach 20 Stunden 0 hilfreich
      Methoden 'OnEventXxx' ?

      Hallo rainer,

      kann man da nicht auch mit "OnEvent"-, "OnAction"-Prozeduren arbeiten?

      Gruss
      Laika

      • Antwort von nach 21 Stunden 0 hilfreich
        Re: Methoden 'OnEventXxx' ?

        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

        • Antwort von nach einem Tag 0 hilfreich
          Re^2: Methoden 'OnEventXxx' ?

          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

          • Antwort von nach einem Tag 0 hilfreich
            Re^3: Methoden 'OnEventXxx' ?

            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

  3. Antwort von nach einem Tag 0 hilfreich
    Re: Mausklick abfragen

    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]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!