c# winforms - 是否可以在多个应用程序上使用全局热键
c# winforms - is it possible to use global hotkey on multiple applications
在 PDF reader 中,我们使用右箭头按钮切换到下一页。在我自己的 winforms 应用程序中,我将右箭头键分配给了全局热键,当我按下右箭头键时,它显示 "hello world" 用于试用目的。
在这种情况下,当我打开 PDF reader 并按向右箭头时,它显示 "hello world" 但它不会切换到下一页。我希望当我按下 PDF reader 上的右箭头按钮时,都切换到下一页并说 "hello world" 因为我自己的 winform 应用程序中的全局热键分配。
当我在Google上搜索时,我找不到关于这种情况的文章。我怎样才能做到这一点?
基于吉米的例子:
public YourClass()
{
InitializeComponent();
//const int id = 0; // The id of the hotkey.
// For eaxple hot key F5
RegisterHotKey(Handle, 0, (int)KeyModifier.None, Keys.F5.GetHashCode());
}
protected override void WndProc(ref Message message)
{
base.WndProc(ref message);
if (message.Msg == 0x0312)
{
var id = message.WParam.ToInt32();
if (id == 0)
{
/*
* Write a method hee what you want to do.
*/
// Let the command press the right arraybotton instead.
SendKeys.SendWait("{RIGHT}");
}
}
}
在 PDF reader 中,我们使用右箭头按钮切换到下一页。在我自己的 winforms 应用程序中,我将右箭头键分配给了全局热键,当我按下右箭头键时,它显示 "hello world" 用于试用目的。
在这种情况下,当我打开 PDF reader 并按向右箭头时,它显示 "hello world" 但它不会切换到下一页。我希望当我按下 PDF reader 上的右箭头按钮时,都切换到下一页并说 "hello world" 因为我自己的 winform 应用程序中的全局热键分配。
当我在Google上搜索时,我找不到关于这种情况的文章。我怎样才能做到这一点?
基于吉米的例子:
public YourClass()
{
InitializeComponent();
//const int id = 0; // The id of the hotkey.
// For eaxple hot key F5
RegisterHotKey(Handle, 0, (int)KeyModifier.None, Keys.F5.GetHashCode());
}
protected override void WndProc(ref Message message)
{
base.WndProc(ref message);
if (message.Msg == 0x0312)
{
var id = message.WParam.ToInt32();
if (id == 0)
{
/*
* Write a method hee what you want to do.
*/
// Let the command press the right arraybotton instead.
SendKeys.SendWait("{RIGHT}");
}
}
}