C# 如何通过其他窗口在winform上使用keydown函数?

C# 如何通过其他窗口在winform上使用keydown函数?,c#,winforms,keydown,C#,Winforms,Keydown,我有这段代码 private void Form1_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode== Keys.Z) { BarTimer.Value = 0; timer1.Start(); timer1.Interval = 500; BarTimer.Minimum = 0;

我有这段代码

private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if(e.KeyCode== Keys.Z)
        {
            BarTimer.Value = 0;
            timer1.Start();
            timer1.Interval = 500;
            BarTimer.Minimum = 0;
            BarTimer.Maximum = 80;
        }
    }

它工作得很好,但我想在全屏应用程序中按下它,这样我就可以在第二个显示器上看到进度条。是否有一个属性或某些东西可以更改以使其像那样工作?

如果是单个键,则可以使用RegisterHotKey。这个答案中有一个示例代码:以及其中链接的代码。微软C++文档是.< /p>
如果你想截获所有键盘输入,你需要一个键盘挂钩。我建议你用谷歌搜索键盘和设置WindowsHookex。但我不认为你能在c#中做到这一点;我只见过用C/C++编写的键挂钩。它们也会引起一些防火墙的兴趣-拦截所有键盘输入可能被认为是潜在的敌意。

嗨,我知道我在code project上找到了一个不错的教程。 当我需要这样的东西时,它对我起了作用


关于,

当输入焦点不在您的表单中,而是在另一个屏幕上时,您的意思是响应键吗?另一个屏幕是在您的应用程序中,还是可以在任何其他应用程序中?它是不同的应用程序