首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# InputSimulator包装器-如何使用它?

C# InputSimulator包装器-如何使用它?
EN

Stack Overflow用户
提问于 2011-07-07 21:34:37
回答 4查看 14.5K关注 0票数 5

我想模拟一个外部程序的键盘点击。我已经尝试过SendMessage,PostMessage,SendKeys,但他们不会把键发送到一个特定的程序。所以我想尝试一下SendInput,我已经为SendInput - http://inputsimulator.codeplex.com/下载了一个很好的包装器

我已经将程序集添加到我的项目中,但是我还不能开始使用任何函数...

我要做什么?我应该添加什么“使用”?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-07 21:37:56

我相信你需要一个

代码语言:javascript
复制
Using WindowsInput; 

如果不是这样,您可以在对象浏览器中查看它并查看命名空间。只需在解决方案资源管理器中右键单击引用,然后单击“浏览”。

票数 5
EN

Stack Overflow用户

发布于 2011-07-07 22:31:01

您可以为程序模拟键盘输入,如下所示:

user32.dll

  • use
  • SendKeys.SendWait Method将您想要发送密钥的程序带到前台,以便将实际的密钥发送到程序window

示例代码(测试前启动记事本):

代码语言:javascript
复制
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
        }
    }
}
票数 2
EN

Stack Overflow用户

发布于 2013-08-16 23:03:56

我也遇到了同样的问题,但我还是按照下面的3个步骤做到了

  1. 将InputSimulator内容提取到某个合理的位置,如项目URL Visual Studio中的
  2. 单击项目->添加引用并浏览到InputSimulator DLL文件
  3. 通过添加"using WindowsInput;"

“将WindowsInput命名空间添加到项目中

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6611442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档