Я пытаюсь выполнить щелчок мышью через c #. Я использовал функцию mouse_event, чтобы сделать это.
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
[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);
Я попробовал два метода:
Перемещение мыши к точке и нажатие на нее:
Cursor.Position = new Point(100, 100);
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0);
Передача x, y желаемого щелчка функции:
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,100, 100, 0, 0);
В любом случае, я странная ошибка:
Помощник по управляемой отладке PInvokeStackImbalance обнаружил проблему в C: \ Users \ или \ Documents \ Visual Studio 2010 \ Projects \ ProjectName \ ProjectName \ bin \ Debug \ ProjectName.vshost.exe.
Дополнительная информация: вызов функции PInvoke 'ProjectName! ProjectName.MainForm :: mouse_event' разбалансирует стек. Это вероятно потому, что управляемая подпись PInvoke не совпадает с неуправляемой целевой подписью. Убедитесь, что соглашение о вызовах и параметры подписи PInvoke соответствуют целевой неуправляемой подписи.
Есть идеи по решению?