c# - 在另一个应用程序中模拟按键和按键释放?

标签 c# keyboard sendmessage

我需要与正在运行的外部应用程序交互,并发送特定的按键和释放。我试过使用 SendKeys 类,但它只完成了一半的工作,因为按键是通过立即释放键发送到外部应用程序的。

我需要能够为外部应用程序模拟“按键按下”。我现在正在尝试使用 SendMessage 东西,但现在它根本不起作用 :( 而且我什至没有收到错误。

最佳答案

好的,案子解决了。我实际上安装了 VC++ 来尝试核心 keybd_event() 函数,在它工作之后我能够在 C# 中明智地使用它。

这是代码,令人惊讶的是它非常简单。您需要将此使用添加到代码中才能导入 dll:using System.Runtime.InteropServices;

此代码将按住“1”按钮 3 秒,然后松开 1 秒并重复该过程。

(代码突出显示搞砸了:/,从“命名空间...”复制到最后一个括号“}”)

public class Program 
{ 
    [DllImport("user32.dll")] 
    private static extern void keybd_event(byte bVk, byte bScan, 
        uint dwFlags, UIntPtr dwExtraInfo);

    private static void Main(string[] args)
    {            
        while (true)
        {
            keybd_event((byte)0x31, (byte)0x02, 0, UIntPtr.Zero);
            Thread.Sleep(3000);

            keybd_event((byte)0x31, (byte)0x82, (uint)0x2, UIntPtr.Zero);
            Thread.Sleep(1000);
        }
    }
}

关于c# - 在另一个应用程序中模拟按键和按键释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777184/

相关文章:

c# - 文件 "obj\Debug\android\bin\packaged_resources"不存在。在 Windows 8.1 上的 Visual Studio 2015 Xamarin 跨平台中

keyboard - iso_level3_shift和latch之间的区别

c# - 在 C# 中向 Notepad++ 发送消息

python - 如何使用 python 和 win32 api 将彩色文本写入文本框?

c# - 在asp.net和java之间共享 session 变量

c# - 使用 C# 或 SQL 从文本中提取关键字以进行 SEO

c# - 对物理路径的读取权限

keyboard - 在autoit中限制鼠标和键盘?

Android 键盘在点击/焦点/requestFocus/inputmanager show_forced 时不显示

linux - 通过linux命令向端口发送数据