禁用Alt键的正常行为

Alt键时,通常焦点将转到窗口菜单。 我需要全局禁用它。 因为我的应用程序使用Alt键。 当用户与Alt键结合使用某个键时,我的应用程序会向活动应用程序发送另一个键。 所以我只需要在打开菜单时忽略Alt

我是编程新手,我正在寻找VB.Net或C#代码。

我的第一个答案是不要在程序中使用Alt键,而是使用Ctrl 。 阻止“正常”事情发生通常会导致未来的痛苦。

但是如果你必须使用Alt键,我会查看这篇文章 ,它使用消息filter来尝试在应用程序级别拦截它。

如果这不能满足您的需求,您可能需要查看全局挂钩, 此链接将帮助您从路径开始。 全局钩子通常被认为是邪恶的,所以如果以上两个建议不起作用,你应该只使用它。 您必须确保卸载挂钩,否则您可能会发现需要经常重新启动计算机以修复奇怪的键盘问题。

这对我有用:

  private class AltKeyFilter : IMessageFilter { public bool PreFilterMessage(ref Message m) { return m.Msg == 0x0104 && ((int)m.LParam & 0x20000000) != 0; } } 

然后你添加消息filter,如下所示:

 Application.AddMessageFilter(new AltKeyFilter());