如何通过其他 windows 在 winform 上使用 keydown 功能?
How do I use the keydown function on a winform through other windows?
我有这段代码
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。此答案中有示例代码:how to use RegisterHotKey and the one linked in it. The Microsoft C++ documentation is here.
如果你想拦截所有键盘输入,你需要一个键钩。我建议你 google WH_KEYBOARD_LL 和 SetWindowsHookEx。但我不认为你可以在 C# 中做到这一点;我只见过用 C/C++ 编写的关键钩子。它们还会引起一些防火墙的注意 - 拦截所有键盘输入可视为潜在的恶意行为。
你好,我知道我在代码项目上找到了一个很好的教程。
当我需要这样的东西时,它对我有用。
http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook
此致,
我有这段代码
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。此答案中有示例代码:how to use RegisterHotKey and the one linked in it. The Microsoft C++ documentation is here.
如果你想拦截所有键盘输入,你需要一个键钩。我建议你 google WH_KEYBOARD_LL 和 SetWindowsHookEx。但我不认为你可以在 C# 中做到这一点;我只见过用 C/C++ 编写的关键钩子。它们还会引起一些防火墙的注意 - 拦截所有键盘输入可视为潜在的恶意行为。
你好,我知道我在代码项目上找到了一个很好的教程。 当我需要这样的东西时,它对我有用。
http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook
此致,