Я пишу небольшую программу, которая может симулировать щелчки мышью в указанных местах.
Используя 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, кажется, игнорирует симулированный щелчок мыши.
Что может быть причиной этого? И как мне это исправить?
Спасибо!