gpt4 book ai didi

Python Xlib.error.BadAccess 尝试访问 X11 快捷键

转载 作者:行者123 更新时间:2023-12-03 13:42:24 24 4
gpt4 key购买 nike

我正在尝试在后台运行的 Python 脚本中捕获快捷键(例如 Ctrl Alt direction key )。当我尝试这样做时,我遇到了错误。我的代码如下:

import Xlib
import Xlib.display

def process_event(event):

keycode = event.detail
if event.type == Xlib.X.KeyPress:
print(keycode)

def main():

# current display
display = Xlib.display.Display()
rootWindow = display.screen().root

# catch keypress events
rootWindow.change_attributes(event_mask = Xlib.X.KeyPressMask)

keys = [10, 11]

for keycode in keys:
rootWindow.grab_key(
keycode,
Xlib.X.Mod1Mask, #Xlib.X.AnyModifier,
1,
Xlib.X.GrabModeAsync,
Xlib.X.GrabModeAsync
)

while True:
event = rootWindow.display.next_event()
process_event(event)

if __name__ == '__main__':
main()

我得到的错误如下:
<class 'Xlib.protocol.request.QueryExtension'>
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 157, sequence_number = 10, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 157, sequence_number = 11, major_opcode = 33, minor_opcode = 0

最佳答案

由于 xlib 上的重复键绑定(bind)而发生此错误。很可能其他应用程序已经在键绑定(bind)中使用它们。
我刚刚测试了与您在我的 Unity 和 Kde 上使用的键绑定(bind)类似的键绑定(bind),但在我的 xfce4 上无法使用类似的错误。

X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 483, sequence_number
= 10, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 483, sequence_number
= 11, major_opcode = 33, minor_opcode = 0
更改键码或编辑其他应用程序键绑定(bind)(如果您知道哪个应用程序)将解决此问题。有时它是来自您桌面环境的应用程序。
对于其他人,同样的错误也可能由于错误的键码而发生。在问题中,它使用键码 10 和 11(正确值)。

关于Python Xlib.error.BadAccess 尝试访问 X11 快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32725574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com