按 Alt 键时,通常焦点会转到窗口菜单。我需要将其停用全球。因为我的应用程序使用 Alt 键。当用户与 Alt 键结合使用某个键时,我的应用程序会向活动应用程序发送另一个键。所以我只需要在打开菜单时忽略 Alt 。
我是编程新手,我正在寻找VB.Net或C#代码。
答案 0 :(得分:1)
我的第一个答案是 NOT 使用程序的 Alt 键,而是使用 Ctrl 。阻止“正常”事情的发生通常会导致未来的痛苦。
但是如果你必须使用 Alt 键,我会查看this article,它使用消息过滤器尝试在应用程序级别拦截它。
如果这不能满足您的需求,您可能需要查看全局挂钩,this link将让您开始走下去。全局钩子通常被认为是邪恶的,所以如果以上两个建议不起作用,你应该只使用它。您必须确保卸载挂钩,否则您可能会发现需要经常重启计算机以修复奇怪的键盘问题。
答案 1 :(得分:1)
这对我有用:
private class AltKeyFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
return m.Msg == 0x0104 && ((int)m.LParam & 0x20000000) != 0;
}
}
然后添加消息过滤器,如下所示:
Application.AddMessageFilter(new AltKeyFilter());