Ciao a tutti.
Volevo realizzare un'applicazione che simulassi il click del mouse, e ho trovato questo codice:
Codice PHP:
DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;
public void DoMouseClick()
{
//Call the imported function with the cursor's current position
long X = Cursor.Position.X;
long Y = Cursor.Position.Y;
mouse_event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
}
ma quando richiamo DoMouseClick, mi appare un'eccezione "PInvokeStackImbalance" che recita:
"Una chiamata alla funzione PInvoke 'ProvaClick!ProvaClick.Form1::mouse_event' ha sbilanciato lo stack. Questo problema può verificarsi quando la firma PInvoke gestita non corrisponde alla firma di destinazione non gestita. Verificare che la convenzione di chiamata e i parametri della firma PInvoke corrispondano alla firma di destinazione non gestita."
Sapreste dirmi cosa devo migliorare nel mio codice perchè non venga lanciata l'ecezzione?