[英]mouse_event WinAPI call not working when cursor is over Flash
我正在写一个小程序,可以模拟指定位置的鼠标单击。 像这样使用Win32 API调用mouse_event:
[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);
[Flags]
public enum MouseEventFlags : uint
{
LEFTDOWN = 0x00000002,
LEFTUP = 0x00000004,
MIDDLEDOWN = 0x00000020,
MIDDLEUP = 0x00000040,
MOVE = 0x00000001,
ABSOLUTE = 0x00008000,
RIGHTDOWN = 0x00000008,
RIGHTUP = 0x00000010
}
mouse_event((uint)(MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP), x, y, 0, UIntPtr.Zero);
除非鼠标光标悬停在Flash应用程序上 , 否则工作正常。 Flash似乎忽略了模拟的鼠标单击。 这可能是什么原因? 我该如何解决?
谢谢!
尝试
mouse_event((uint)
(MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP | MouseEventFlags.ABSOLUTE),
x, y, 0, UIntPtr.Zero);
另外,出于某些奇怪的原因,我在使用上述P / Invoke调用约定时遇到了问题,请参见在Windows中模拟鼠标单击
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.