vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Maus & Tastatur · Maus   |   VB-Versionen: VB4, VB5, VB625.11.00
Mausklick simulieren

So wie mit Sendkeys Tastaturanschläge simuliert werden können, läßt sich mit nachfolgender Prozedur ein Mausklick simulieren. Auch ein Doppelklick i...

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  37.719 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

So wie mit Sendkeys Tastaturanschläge simuliert werden können, läßt sich mit nachfolgender Prozedur ein Mausklick simulieren. Auch ein Doppelklick ist möglich.

Wie? Na ja, wie fast immer - mit Hilfe der Windows-API.

' Benötigte Deklarationen
Private Declare Sub mouse_event Lib "user32" _
  Alias "mouse_event" ( _
  ByVal dwFlags As Long, _
  ByVal dx As Long, _
  ByVal dy As Long, _
  ByVal cButtons As Long, _
  ByVal dwExtraInfo As Long)
 
Public Const MOUSE_LEFT = 0
Public Const MOUSE_MIDDLE = 1
Public Const MOUSE_RIGHT = 2
 
' Die nachfolgende Prozedur simuliert den gewünschten Mausklick.
Public Sub SendMausklick(ByVal mButton As Long)
  Const MOUSEEVENTF_LEFTDOWN = &H2 
  Const MOUSEEVENTF_LEFTUP = &H4 
  Const MOUSEEVENTF_MIDDLEDOWN = &H20 
  Const MOUSEEVENTF_MIDDLEUP = &H40 
  Const MOUSEEVENTF_RIGHTDOWN = &H8 
  Const MOUSEEVENTF_RIGHTUP = &H10
 
  If (mButton = MOUSE_LEFT) Then
    Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
  ElseIf (mButton = MOUSE_MIDDLE) Then
    Call mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0)
    Call mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
  Else
    Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
    Call mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
  End If
End Sub

Beispiel:

' linke Maustaste
SendMausklick MOUSE_LEFT
 
' rechte Maustaste
SendMausklick MOUSE_RIGHT
 
' linke Maustaste Doppelklick
SendMausklick MOUSE_LEFT
SendMausklick MOUSE_LEFT