c# InputSimulator如何使用
本文关键字:何使用 InputSimulator | 更新日期: 2023-09-27 18:01:22
我想模拟键盘点击外部程序。我试过SendMessage, PostMessage, SendKeys,但他们不发送密钥到一个特定的程序。所以我想尝试SendInput,我已经下载了一个很好的包装SendInput - http://inputsimulator.codeplex.com/
我已经将程序集添加到我的项目中,但我还不能开始使用任何函数…
我该怎么做?我应该添加什么"Using"?
我相信你需要一个
Using WindowsInput;
如果不是这样,您可以在Object Browser中查看它并查看名称空间。只需右键单击解决方案资源管理器中的引用,然后单击浏览。
您可以像这样模拟键盘输入程序:
-
使用SetForegroundWindow从user32.dll
将你想要发送密钥的程序带到前台 使用SendKeys。SendWait发送实际密钥到程序窗口的方法
示例代码(测试前启动记事本):
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace SendKeyboardInput
{
public class SendKey
{
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
public void Send()
{
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName("notepad"); //search for process notepad
if (p.Length > 0) //check if window was found
{
SetForegroundWindow(p[0].MainWindowHandle); //bring notepad to foreground
}
SendKeys.SendWait("a"); //send key "a" to notepad
}
}
}
我有同样的问题,但我设法做到了以下三个步骤
-
提取InputSimulator的内容在某个地方像你的项目的URL
-
在Visual Studio中单击Project->Add Reference并浏览到InputSimulator DLL文件
- 通过添加"using"将WindowsInput命名空间添加到项目中WindowsInput;"
虽然我不能告诉你你可能需要什么使用指令,我不确定这个工具将允许你发送输入到一个特定的窗口。链接页面的"历史记录"部分显示:
它最初是为WpfKB (WPF触摸屏键盘)项目编写的,用于模拟进入活动窗口的真实键盘输入。
我知道这个问题的唯一解决方案涉及SendMessage,也许你可以进一步解释问题在哪里?