Winforms 当其他窗口处于活动状态时,Visual Studio-Windows窗体应用程序中的快捷方式

Winforms 当其他窗口处于活动状态时,Visual Studio-Windows窗体应用程序中的快捷方式,winforms,visual-studio,shortcuts,Winforms,Visual Studio,Shortcuts,我想在Windows窗体应用程序中使用快捷方式,并发现以下内容 但这仅在窗口处于活动状态时有效。即使其他窗口处于活动状态,如何使用快捷方式?您可以使用单个入口点以基本形式捕获和发送消息 基本表单 public class BaseForm : Form { public void MyMessage(hwnd:HWND) { ... case MSG_SPECIFIC_ACTION_1 : handled=this.DoOnSpecificAction

我想在Windows窗体应用程序中使用快捷方式,并发现以下内容


但这仅在窗口处于活动状态时有效。即使其他窗口处于活动状态,如何使用快捷方式?

您可以使用单个入口点以基本形式捕获和发送消息

基本表单

public class BaseForm : Form
{
    public void MyMessage(hwnd:HWND)
    {
       ...
       case MSG_SPECIFIC_ACTION_1 : handled=this.DoOnSpecificAction1();
       ... 
    }

    protected bool DoOnSpecificAction1(){ return=false;}
}
基本形式后代

public class MyCustomForm : BaseForm
{
    protected override bool DoOnSpecificAction1()
    {
        MessageBox.Show("Hello");
        return true;    
    }
}
编辑-全局键盘挂钩


如果您希望捕获其他应用程序中的所有按键事件,则需要使用键盘挂钩。这是一篇很好的文章,介绍了如何使用
SetWindowsHookEx

您可以使用一个入口点来捕获和发送基本表单中的消息

基本表单

public class BaseForm : Form
{
    public void MyMessage(hwnd:HWND)
    {
       ...
       case MSG_SPECIFIC_ACTION_1 : handled=this.DoOnSpecificAction1();
       ... 
    }

    protected bool DoOnSpecificAction1(){ return=false;}
}
基本形式后代

public class MyCustomForm : BaseForm
{
    protected override bool DoOnSpecificAction1()
    {
        MessageBox.Show("Hello");
        return true;    
    }
}
编辑-全局键盘挂钩



如果您希望捕获其他应用程序中的所有按键事件,则需要使用键盘挂钩。这是一篇很好的文章,介绍了如何使用my head Of the top Of my head的
SetWindowsHookEx

。您可以使用继承,截取基本表单中的窗口消息,并从基本表单进行扩展。在my head Of head中,您可以使用继承,截取基本表单中的窗口消息,并从基本表单进行扩展使用继承和截获基础表单中的窗口消息,并从基础表单进行扩展。谢谢您的回答。我还不明白。但今天下午我会试试看是否能找到答案。我不明白为什么我需要视觉继承。活动窗口不是一个不同的Windows窗体应用程序,而是一个CAD软件。我想在处理3D模型时在第二个屏幕上显示不同的信息。我希望这能让事情变得更清楚:-以TS3为例,即使在游戏中,我也可以设置快捷方式并使用它们。请让我理解。另一个窗口是否在单独的应用程序中?是的,完全正确。这是我的问题谢谢你的回答。我还不明白。但今天下午我会试试看是否能找到答案。我不明白为什么我需要视觉继承。活动窗口不是一个不同的Windows窗体应用程序,而是一个CAD软件。我想在处理3D模型时在第二个屏幕上显示不同的信息。我希望这能让事情变得更清楚:-以TS3为例,即使在游戏中,我也可以设置快捷方式并使用它们。请让我理解。另一个窗口是否在单独的应用程序中?是的,完全正确。这是我的问题谢谢你的回答。我还不明白。但今天下午我会试试看是否能找到答案。我不明白为什么我需要视觉继承。活动窗口不是一个不同的Windows窗体应用程序,而是一个CAD软件。我想在处理3D模型时在第二个屏幕上显示不同的信息。我希望这能让事情变得更清楚:-以TS3为例,即使在游戏中,我也可以设置快捷方式并使用它们。请让我理解。另一个窗口是否在单独的应用程序中?是的,完全正确。那是我的问题