如何在没有激活的情况下将输入发送到其他窗口?

时间:2016-07-22 08:06:29

标签: c# winapi visual-studio-2015 windows-10

我已经搜索了很多关于sendinput到非活动窗口的内容。 但是,我发现的所有方法都会使目标窗口获得焦点。这是一个例子:

IntPtr NotepadHandle = FindWindow("Notepad", "Untitled - Notepad");
uint noteid = GetWindowThreadProcessId(NotepadHandle, IntPtr.Zero);
uint selfid = GetCurrentThreadId();
bool attach = AttachThreadInput(selfid, noteid, true);
SetFocus(NotepadHandle);
//sendInput"a"=================================================
INPUT Input = new INPUT();
Input.type = 1; //keyboard_input
Input.ki.wVk = 65; //a
Input.ki.dwFlags = 0;
SendInput(1, ref Input, Marshal.SizeOf(Input));

Input = new INPUT();
Input.type = 1;
Input.ki.wVk = 65;
Input.ki.dwFlags = 2;//key_up
SendInput(1, ref Input, Marshal.SizeOf(Input));
//sendInput"a"=================================================
bool cutattach = AttachThreadInput(selfid, noteid, false);

它可以发送" a"到非活动记事本,但我想要的是保持记事本非强制或甚至最小化。

有没有这样做?谢谢!

我问这个的原因是我发现了一个名为" WindClick"这可以做我想要的。 " WindClick"我在使用电脑时可以继续点击其他窗口。 但它无法保存配置,所以我正在尝试制作类似的应用程序。 我怎样才能制作这样的应用程序?

0 个答案:

没有答案