是否可以在当前没有焦点的窗口上使用sendInput函数,并且可能通过使用多线程,同时将输入发送到多个最小化窗口,或者在您在另一个窗口上工作时将输入发送到一个窗口?
我想在c#中做这样的事情
提前致谢.
您只能使用SendInput键盘焦点将输入发送到HWND.此外,窗口必须附加到调用线程的消息队列,因此不能简单地SetFocus.
您需要获取窗口的线程ID GetProcessIdOfThread.
如果您有线程ID,则可以使用该AttachThreadInput函数将线程附加到其他线程输入处理.
毕竟,你可以使用SetFocus和SendInput.
您可能希望在发送输入时分离线程.
要访问这些方法,您必须使用P/Invoke进行C#或C++/CLI.PInvoke.net作为参考非常方便.这将是一个小家务,导入所有这些功能,但是当你完成后,你应该能够将输入发送到你想要的任何"窗口".
另外作为旁注,我不确定你是否意识到这一点,但在纯Win32中,一切都被视为一个窗口,甚至是一个按钮.如果您运气不好,则可能必须将输入发送到属于记事本应用程序的文本控件的句柄.