Ваша подпись DllImport недействительна.
Тип dwFlags
, dx
, dy
и dwData
задокументирован как DWORD
, что является 32-разрядным целым числом без знака. В C # long
представляет 64-разрядное целое число со знаком. Поэтому вы должны использовать uint
, представляющее 32-разрядное целое число без знака.
Последний параметр dwExtraInfo
имеет тип ULONG_PTR
(указатель на 32-разрядное целое число без знака), что соответствует UIntPtr
в C #.
Попробуйте это:
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, UIntPtr dwExtraInfo);