LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1294|回复: 1

使用XgrabKey获取键盘事件报错

[复制链接]
发表于 2010-2-1 15:23:32 | 显示全部楼层 |阅读模式
我想使用XgrabKey来拦截某个键盘事件,比如:按 F9
现在发现程序运行报 BadAccess 的错,可能是系统中存在别的软件拦截过F9了??有办法知道是什么软件么?或者怎么才能正常的拦截 F9呢?

void
grab_keys (Display * display)
{
                int i;
        int min, max;
        int screen;
        unsigned int modifier = 0;
        // modifier |= Mod2Mask; 使用这个则不报错
        modifier = AnyModifier;
               
        for (screen = 0; screen < ScreenCount (display); screen++)
        {
                // grab 'F9' of all screen
                KeyCode F9;
                F9 = XKeysymToKeycode (display, XStringToKeysym ("F9"));
                XGrabKey (display, F9, modifier, RootWindow (display, screen),
                          True, GrabModeAsync, GrabModeAsync);
        }

}
 楼主| 发表于 2010-2-2 20:31:27 | 显示全部楼层
看来不能使用AnyModifier,modifier参数直接传0就行了。

XGrabKey (display, F9, 0, RootWindow (display, screen),
                     True, GrabModeAsync, GrabModeAsync);
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表