陷阱键组合并将字符串插入键盘缓冲区

时间:2015-11-25 00:54:00

标签: .net c#-4.0 user32

应用程序将最小化运行,用于在用户通过组合键请求时将数据插入应用程序。所以使用NuGet包KeystrokeAPI我已经制作了一个应用程序来嗅探键盘寻找ctrl + alt + w。当检测到字符串" Hello"使用sendKeys插入键盘缓冲区。 我遇到的问题是sendKeys将密钥发送到嗅探器应用程序,而不是用户所在的前台应用程序。

在下面的代码中.CurrentWindow是从User32.dll返回的IntPtr GetForegroundWindow()

using (var api = new KeystrokeAPI())
{
    api.CreateKeyboardHook((character) =>
    {
        if (character.KeyCode == KeyCode.W && character.CtrlPressed && character.AltPressed)
        {
            SetForegroundWindow(character.CurrentWindow);
            SendKeys.Send("Hello");
        }

        Console.Write(character);
    });
    Application.Run();
}

前台应用程序没有" Hello"。

0 个答案:

没有答案