gpt4 book ai didi

python - 从另一个应用程序获取所有快捷方式的列表

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:17 27 4
gpt4 key购买 nike

我想知道是否有一种直接的方法可以获取其他应用程序菜单栏中存在的所有键盘快捷键的列表(如果可能,也可以从已关闭的应用程序中获取)。

我想在我正在编写的一个简单的 Python 应用程序中使用它,以简化为不同应用程序配置我的 Wacom 数位板的过程。它实际上不需要是一个“干净”的解决方案,如果我能只生成一次列表然后将其读入我的程序,我会很高兴。

我以前用过 AppleScript,所以如果可以通过 AS 来做那也很好。

最佳答案

您可能必须使用 gui 脚本,这意味着必须打开应用程序。我用 Safari 试过这个。如果您在"file"菜单下查看,第 6 个菜单项是“关闭窗口”菜单项,其键盘快捷键为 shift-cmd-w。我瞄准了那个,看看我能不能得到它......

tell application "System Events"
tell process "Safari"
-- get the menu bar items from the main menu
tell menu bar 1
set menuBarItems to menu bar items -- apple menu, application menu, file menu etc.
end tell

-- get the menu items from a menu bar item
set fileMenuBarItem to item 3 of menuBarItems -- the file menu
tell menu 1 of fileMenuBarItem -- you have to have "menu 1" here
set menuItems to menu items
end tell

-- query the menu bar item
set closeWindowMenuItem to item 6 of menuItems -- close window menu item
tell closeWindowMenuItem
return {name, value} of attributes
end tell
end tell
end tell

如果您查看结果,就会发现该菜单项有几个有趣的属性。它具有“AXMenuItemCmdChar”属性,它为我提供了键盘快捷键的“w”。因此我们知道“cmd-w”是快捷方式的一部分。存在另一个名为“AXMenuItemCmdModifiers”的属性,其值为 1。这必须是移位字符。

看来你可以解决这个问题。这就是我所做的一切,因此您将不得不更多地查看它并决定是否需要任何其他属性。您还需要添加重复循环,以便循环遍历每个菜单项。

我注意到一件事...如果您打开文件菜单并按“选项”键,您会注意到菜单项发生了变化。当您获得菜单栏项的菜单项时,这些更改的菜单项也会出现。因此,您无法始终看到将获得的菜单项。

关于python - 从另一个应用程序获取所有快捷方式的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5841956/

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