我需要讀取MAC OS中最前面的應用程序的所有快捷方式。 Cocoa中是否有API或類,Objective-c提供了這種API?Macos x應用程序的快捷方式
4
A
回答
7
Accessibility API是你需要的。不幸的是,這是相當複雜的,最好通讀UIElementInspector source code以瞭解它的使用方法,以及Accessibility Programming Guidelines for Mac中與輔助應用相關的部分。
你想要什麼會需要一點點的代碼,所以我只是概述步驟。
- 使用
[[NSWorkspace sharedWorkspace] runningApplications]
獲得的應用程序的列表,並得到其active
屬性爲YES
應用。 - 使用
NSRunningApplication
的processIdentifier
屬性獲取該應用程序的PID。 - 現在,我們得到輔助功能,通過Application Services API
- 訪問創建代表使用
AXUIElementCreateApplication
活動的應用程序,這需要pid
作爲參數的AXUIElement。 - 現在你有一個
AXUIElement
與Application
角色,或者AXApplication
僞類。您需要繼續執行元素AXApplication
→AXMenuBar
→AXMenuBarItem
→AXMenuItem
的層次結構。請注意,AXMenuItems
可以在其下嵌套其他AXMenuItems
。 - 要遍歷層次結構,請使用
AXUIElementCopyAttributeValues
來獲取kAXChildrenAttribute
的值。這將返回一組兒童AXUIElements
。 - 最後,當您到達
AXMenuItem
元素時,請檢查其實際快捷方式的菜單項Cmd Char,Glyph,Modifiers和Virtual Key屬性。屬性名稱的常量,如kAXMenuItemCmdCharAttribute
,列出了here。
0
相關問題
- 1. 離線應用程序快捷方式
- 2. 應用程序快捷方式
- 3. .net .vdproj - 應用程序快捷方式
- 4. 創建應用程序快捷方式
- 5. OS X應用程序快捷鍵
- 6. 以編程方式安裝應用程序快捷方式
- 7. Chrome應用程序快捷方式/ Mozilla Prism安裝程序
- 8. C#VS卸載程序2010-應用程序快捷方式
- 9. Chrome應用程序模式 - 禁用快捷方式
- 10. 嘗試重新安裝應用程序的應用程序快捷方式
- 11. 創建我們自己的應用程序的快捷方式
- 12. 創建簡單的Java應用程序的快捷方式
- 13. 你的應用程序在家中的快捷方式自動
- 14. Mac OS X上的MySql快捷方式?
- 15. 爲安裝的電子應用程序創建快捷方式
- 16. 爲swing應用程序創建快捷方式的選項
- 17. 添加快捷方式到應用程序的菜單
- 18. Gnome - 快捷方式切換一個應用程序的實例
- 19. 如何重新創建webstart應用程序的快捷方式?
- 20. ClickOnce已部署應用程序的桌面快捷方式
- 21. 在metro風格的應用程序中創建快捷方式
- 22. Facebook和Twitter應用程序發佈頁面的快捷方式
- 23. 執行android應用程序的快捷方式時出現
- 24. 如何關閉新的Android 7.1應用程序快捷方式
- 25. 從快捷方式運行閃亮的應用程序10
- 26. Delphi:啓動應用程序的快捷方式在哪裏?
- 27. 如何創建Java桌面應用程序的快捷方式?
- 28. Java應用程序中的可定製快捷方式
- 29. 更正Web應用程序的鍵盤快捷方式
- 30. 移動設備上的Web應用程序快捷方式
你說的快捷鍵是什麼意思?你能更詳細地解釋你想要做什麼嗎? – user1118321
沒問題。我給你一個例子。讓我們說應用程序Safari是活躍的。我想要做的是讀取所有註冊此應用程序的快捷鍵/熱鍵。也許有一個文件或一個方法,我可以讀這個? – Togo
查看[Accessibility框架](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Accessibility/cocoaAXIntro/cocoaAXintro.html#//apple_ref/doc/uid/10000118i) 。它應該爲您提供一種訪問正在運行的應用程序的菜單的方法,這可能允許您讀取項目分配的密鑰。 –