[Visual Basic 2008] MausKlick Simulation [Hilfe]

04/29/2010 16:18 Cash²#1
Hey,
also ich möchte einen MausKlick simulieren und habe es auch schon in google gesucht, aber ich finde nichts passendes bzw. unvollständige Beiträge.

- linker Mausklick
- rechter Mausklick


Für Antworten bin ich sehr dankbar.

Gruß

Cash²
04/29/2010 16:27 scenebase#2
[Only registered and activated users can see links. Click Here To Register...]

Quote:
Code:
	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)
	Private Const MOUSEEVENTF_LEFTDOWN = &H2
	Private Const MOUSEEVENTF_LEFTUP = &H4
	Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
	Private Const MOUSEEVENTF_MIDDLEUP = &H40
	Private Const MOUSEEVENTF_RIGHTDOWN = &H8
	Private Const MOUSEEVENTF_RIGHTUP = &H10
Quote:
Zum aufrufen:
Code:
Rechts klick:
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, MousePosition.X, MousePosition.Y, 0, 0)

Links klick:
Call mouse_event(MOUSEEVENTF_LEFTDOWN, MousePosition.X, MousePosition.Y, 0, 0)
04/29/2010 16:31 Cash²#3
Kann man das nicht irgendwie über den Befehl

SendKeys.Send("{*}")

* = Ausgewählte Taste

machen?
Oder ist das nur für die Tastatur?

Und wo soll/kann ich den KlickPunkt festlegen?
04/29/2010 17:08 buFFy!#4
PostMessage und SendMessage gehen nicht?
04/29/2010 17:37 Cash²#5
Post Message, SendMessage?
04/29/2010 18:12 HardCore.1337#6
Beides sind Grundfunktionen aus der Windows API
04/29/2010 18:32 Cash²#7
Weiteres Problem, wenn ich jetzt diesen Code nehme

Code:
 Windows.Forms.Cursor.Position = New Point(X, Y)
bewegt sich zwar der cursor zu dem Punkt, aber macht keinen LinksKlick, ist das auch so gedacht?
04/29/2010 18:37 Elite-1337#8
Das setzt nur die Position der Maus. Den klick muss man danach noch durchführen
04/29/2010 18:44 Cash²#9
Quote:
Originally Posted by Elite-1337 View Post
Das setzt nur die Position der Maus. Den klick muss man danach noch durchführen
Ja und das ist auch meine Frage. xD
04/30/2010 17:13 buFFy!#10
Quote:
Originally Posted by Cash² View Post
Ja und das ist auch meine Frage. xD
Tasten Senden: SendInput, PostMessage, SendMessage
Maus bewegen: PostMessage und SendMessage.

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
04/30/2010 17:37 Cash²#11
Quote:
Originally Posted by u-coRe View Post
Tasten Senden: SendInput, PostMessage, SendMessage
Maus bewegen: PostMessage und SendMessage.

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Bezieht sich "TastenSenden" nur auf die Tastatur oder auch Maus?
Bitte keine Microsoft Seiten Angaben, da versteh ich sowieso nichts (Anfänger).
04/30/2010 17:40 buFFy!#12
Auch auf die Maus ;)
04/30/2010 22:52 Nosferatu.#13
ich habe hier was gefunden, evtl hilft es dir ja:

Ich habs in google gefunde, und so wie es aussieht könntest du es sicher gebrauchen.
Code:
Module WinFromPoint

    Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" ( _
    ByVal hwnd As IntPtr, _
    ByVal wMsg As Int32, _
    ByVal wParam As Int32, _
    ByVal lParam As Int32) As Int32

    Public Declare Function WindowFromPoint Lib "user32" ( _
    ByVal stPoint As Point) As IntPtr

    Public Const WM_LBUTTONDOWN = &H201
    Public Const WM_LBUTTONUP = &H202

    Public Sub DoClick()

        Dim MyPoint As Point
        MyPoint.X = 50
        MyPoint.Y = 50

        Dim ptHwnd As IntPtr = WindowFromPoint(MyPoint)

        Dim retVal As Int32 = PostMessage(ptHwnd, WM_LBUTTONDOWN, 0, 0&)

        retVal = PostMessage(ptHwnd, WM_LBUTTONUP, 0, 0&)

    End Sub

End Module
05/01/2010 00:32 waldi_#14
Quote:
Originally Posted by Cash² View Post
Weiteres Problem, wenn ich jetzt diesen Code nehme

Code:
 Windows.Forms.Cursor.Position = New Point(X, Y)
bewegt sich zwar der cursor zu dem Punkt, aber macht keinen LinksKlick, ist das auch so gedacht?

Du schreibst zuerst iwo oben das:
Code:
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)
	Private Const MOUSEEVENTF_LEFTDOWN = &H2
	Private Const MOUSEEVENTF_LEFTUP = &H4
	Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
	Private Const MOUSEEVENTF_MIDDLEUP = &H40
	Private Const MOUSEEVENTF_RIGHTDOWN = &H8
	Private Const MOUSEEVENTF_RIGHTUP = &H10

//Rechts klick:
//Call mouse_event(MOUSEEVENTF_RIGHTDOWN, MousePosition.X, MousePosition.Y, 0, 0)

//Links klick:
//Call mouse_event(MOUSEEVENTF_LEFTDOWN, MousePosition.X, MousePosition.Y, 0, 0)
und dann wo der befehl hinkommt:
Code:
Windows.Forms.Cursor.Position = New Point(X, Y)
	Call mouse_event(MOUSEEVENTF_RIGHTDOWN, MousePosition.X, MousePosition.Y, 0, 0)
05/01/2010 08:55 Cash²#15
Call wird als Fehler unterstrichen.