Mouseclicks via Post-/Sendmessage?

02/22/2014 23:16 Cotigo#1
Hiho,

ich wollte mal fragen ob es überhaupt möglich ist mit Post- oder Sendmessage einen Mausklick zu simulieren.
Also laut Google soll es ja anscheind funktionieren, jedoch bei meinem Code nicht so ganz ._.". Das Senden von Tastendrücken hab ich auch probiert und das funktioniert einwandfrei, es ist lediglich das Senden von Mausklicks.

Hier die Codeschnipsel:
Code:
        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

        [DllImport("user32.dll", SetLastError = true)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
Code:
        const int MOUSEEVENTF_LEFTDOWN = 0x02;
        const int MOUSEEVENTF_LEFTUP = 0x04;
Code:
                PostMessage(edit, MOUSEEVENTF_LEFTDOWN, IntPtr.Zero, IntPtr.Zero);
                PostMessage(edit, MOUSEEVENTF_LEFTUP, IntPtr.Zero, IntPtr.Zero);
Ich hoffe mir kann dabei jemand helfen :'x
Sollte ein bisschen mehr einblick in den Code benötigt sein, kann ich auch mehr posten.

MfG
Cotigo
02/25/2014 20:01 Cotigo#2
Niemand einen Vorschlag bzw. eine Idee was man machen könnte?
02/26/2014 10:01 kissein#3
Suchfunktion nutzen, das wurde hier schon tausendmal behandelt.
02/26/2014 22:11 Brendan Jordan#4
Spricht was dagegen die SendInput Funktion zu benutzen? Bzw. die mouse_event Funktion?
03/01/2014 05:54 Y u k i#5
hook doch den kernel. kybd_event hat auch maussteuerung drin
03/02/2014 08:53 dready#6
Warum genau sollte er das hooken ? Oo
03/06/2014 11:15 maxasoft#7
Neue Sub:

Code:
Private Declare Sub mouse_event Lib "user32" _
(ByVal dwFlags As Integer, ByVal dx As Integer, _
ByVal dy As Integer, ByVal cButtons As Integer, _
ByVal dwExtraInfo As Integer)
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Public Sub Mausklick(Optional ByVal Button As _
MouseButtons = Windows.Forms.MouseButtons.Left)
'Mausklick simulieren
Select Case Button
'linke Maustaste
Case Windows.Forms.MouseButtons.Left
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
'mittlere Maustaste
Case Windows.Forms.MouseButtons.Middle
mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0)
mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
'rechte Maustaste
Case Windows.Forms.MouseButtons.Right
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
End Select
End Sub
Und dann per
Code:
Mausklick(Windows.Forms.MouseButtons.Left)
aufrufen.

Quelle: [Only registered and activated users can see links. Click Here To Register...]
10 Sek googlen.