2016-08-02 25 views
0

Ich baue eine Desktop-Anwendung in VB.Net, die Mauspressen in anderen Anwendungen simulieren soll. Hier ist der Code, den ich habe bisher:Versuch, die Maus nach unten zu simulieren und trotzdem einen Stapelunwuchtfehler zu erhalten. Möglicherweise mit falschen Variablen zu tun?

Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer) 
Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down 
Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up 
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' middle button down 
Public Const MOUSEEVENTF_MIDDLEUP = &H40 ' middle button up 
Public Const MOUSEEVENTF_RIGHTDOWN = &H8 ' right button down 
Public Const MOUSEEVENTF_RIGHTUP = &H10 ' right button up 

Nun, wenn ich es bin anrufen, ich dies tun:

mouse_event(MOUSEEVENTF_LEFTDOWN, Cursor.Position.X, Cursor.Position.Y, 0, 0) 

Allerdings erhalte ich die Fehlermeldung:

ein Aufruf an PInvoke Funktion hat

den Stapel unausgewogen ich habe einige der Forschung getan und ich glaube, ich underst und was es bedeutet, aber ich kann es anscheinend nicht reparieren.

Ich habe versucht Long.Parse (Wert) auf alle meine Integer-Werte, aber ich bekomme immer noch den Fehler.

Kann jemand eine Reparatur empfehlen?

Wenn Sie weitere Informationen benötigen, dann lassen Sie es mich wissen !!

  • Visual Studio 2010
  • VB.NET 4,5
+1

Ihr API-Aufruf sieht VB6-ish. Siehe [Doppelklicken auf eine Cursorposition] (http://stackoverflow.com/a/24291099/719186) – LarsTech

+0

Ich weiß, haha, es ist ziemlich VB6-ish. Ich habe keinen Weg gefunden, es vollständig in VB.Net zu konvertieren, aber ich habe mein Bestes versucht! –

+0

@LarsTech Das hat es behoben! Vielen Dank: D –

Antwort

0

Das Problem war, es war sehr VB6-y.

Hier ist der aktualisierte Code.

Public Declare Sub mouse_event Lib "User32.dll" Alias "mouse_event" (ByVal dwFlags As UInt32, ByVal dx As UInt32, ByVal dy As UInt32, ByVal dwData As UInt32, ByVal dwExtraInfo As Int32) 
Public Const MOUSEEVENTF_LEFTDOWN As UInt32 = &HE0002 
Public Const MOUSEEVENTF_LEFTUP As UInt32 = &HE0004 
Public Const MOUSEEVENTF_RIGHTDOWN As UInt32 = &HE0008 
Public Const MOUSEEVENTF_RIGHTUP As UInt32 = &HE0010 

Dank LarsTech