禁用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());
- ASP.Net Core Web API基于约定的路由?
- C#中有“upto”方法吗?
- 我可以在.net中没有.config文件的情况下指定supportedRuntime(或任何其他配置参数)吗?
- 由于在调用Application.Exit()时修改集合而导致的System.InvalidOperationException
- .NET检查两个IEnumerable 是否具有相同的元素
- 使用comboboxValueMember和DisplayMember
- PowerShell – 如何在Runspace中导入模块
- 获取从不同程序集中执行的打开窗口表单实例的列表
- 如何编组c#中的集合以传递给本机(C ++)代码