我知道如何模拟鼠标和键盘事件,但是它们的行为就像用户执行它们一样,因此它们将影响活动的窗口.我需要模拟这些输入之一,但要在一个不活动的窗口中.
我并不是说将其最小化,例如,假设您有msPaint和记事本.记事本在油漆前面.您想在绘制窗口的某些坐标上模拟鼠标单击,但是没有将其设置为活动状态,因此用户可以继续使用处于绘制区域的记事本.
这有可能吗?谢谢!
我已经试过了:
const int WM_KEYDOWN = 0x100;
Thread.Sleep(5000);
Process x = Process.Start(@"C:\WINDOWS\NOTEPAD.EXE");
PInvokes.PlatformInvokeUSER32.SendMessage(x.MainWindowHandle, WM_KEYDOWN, ((int)Keys.W), 0);
但这不起作用=(不做任何事情:(
解决方法:
您可以尝试UI automation API.它也支持旧版应用程序.