首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegisterHotkey只能在WIndows 7中运行,不能在XP server 2003中运行

RegisterHotkey只能在WIndows 7中运行,不能在XP server 2003中运行
EN

Stack Overflow用户
提问于 2011-05-24 05:08:16
回答 1查看 1.2K关注 0票数 3

我正在使用RegisterHotKey方法在Windows中设置全局快捷键

代码语言:javascript
复制
public static int MOD_CONTROL = 0x2;
public static int WM_HOTKEY = 0x312;

RegisterHotKey(this.Handle, 0, MOD_CONTROL | MOD_NOREPEAT, 96); 
// ctrl numpad0

处理这种情况的代码是:

代码语言:javascript
复制
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc);            

 protected override void WndProc(ref Message m)
    {

        if (m.Msg == WM_HOTKEY)         
        {
            MessageBox.Show("a hotkey is pressed"); //this also only shows in win7

            if (m.WParam.ToInt32() == 0) //ctrl numpad0
            {
                MessageBox.Show("Hotkey ctrl numpad0 pressed"); 
                // works fine in win7

            }

        }
        base.WndProc(ref m);
    }

在我的Windows7PC上,这是可行的,但在XP或windows Server2003上就不行了。你知道哪里出问题了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-24 05:13:42

查看RegisterHotKey的文档,它指出Vista/XP/2K不支持MOD_NOREPEAT标志。我怀疑这就是你的问题。

你应该检查返回值,它会立即告诉你出了什么问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6103059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档