c#中用代码控制键盘

通过触发器,执行代码,以达到相当于按下键盘某个键的功能,这种代码我不会写,在网上找了一些什么sendkey、keyboardevent什么的也不知道怎么用,有会的亲可以教教我吗,谢谢!(我用的是unity3d里的 monodevelop写的cs文件)

阅读 8.6k
2 个回答
using System.Runtime.InteropServices;
// Get a handle to an application window.
    [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
    public static extern IntPtr FindWindow(string lpClassName,
        string lpWindowName);

    // Activate an application window.
    [DllImport("USER32.DLL")]
    public static extern bool SetForegroundWindow(IntPtr hWnd);
 //FindWindow 参数一是进程名 参数2是 标题名 
        IntPtr calculatorHandle = FindWindow(null, "计算器");
        //判断是否找到
        if (calculatorHandle == IntPtr.Zero)
        {
            MessageBox.Show("没有找到!");
            return;
        }
        // 然后使用SetForegroundWindow函数将这个窗口调到最前。
        SetForegroundWindow(calculatorHandle);
        //发送按键
        SendKeys.SendWait("2");
        SendKeys.SendWait("*");
        SendKeys.SendWait("11");
        SendKeys.SendWait("=");

补充一个

如果只是模拟按键 而不用考虑向指定进程发送按键消息的话
可以直接用 System.Windows.Forms 命名空间下的 SendKeys

这个类是向当前焦点的窗口发送按键事件

推荐问题
logo
Microsoft
子站问答
访问
宣传栏