Jedesmal, wenn ich die Funktion mouse_event ich den Fehler nennen unausgeglichenEin Aufruf von PInvoke Funktion ... hat den Stapel
Ein Aufruf von PInvoke Funktion unausgewogen den Stapel hat. Dies liegt wahrscheinlich daran, dass die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur übereinstimmt. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Ziel-Signatur übereinstimmen.
const int MOUSEEVENTF_LEFTDOWN = 0x02;
const int MOUSEEVENTF_LEFTUP = 0x04;
const int MOUSEEVENTF_RIGHTDOWN = 0x08;
const int MOUSEEVENTF_RIGHTUP = 0x10;
[System.Runtime.InteropServices.DllImport("user32.dll", CallingConvention = System.Runtime.InteropServices.CallingConvention.Cdecl)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
switch (mouseAction)
{
case ENUMMouseAction.LEFTDOWN:
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
break;
case ENUMMouseAction.LEFTUP:
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
break;
case ENUMMouseAction.RIGHTDOWN:
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
break;
case ENUMMouseAction.RIGHTUP:
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
break;
}
Ich habe versucht, alle verfügbaren CallingConventions und keiner scheint zu funktionieren, würde jede Hilfe zu erkennen ist,
Vielen Dank im Voraus.
Vielen Dank für Ihre Hilfe, ich werde als Antwort markieren, sobald ich darf. Ich war nur ziemlich verwirrt, da es in einem früheren Projekt funktioniert hatte, aber ich nehme an, dass .NET Framework Version 3.5 verwendet wurde. –
Dieser Code war immer falsch. Wenn es jemals funktioniert hat, war es rein zufällig. –