Cocoa 获取桌面图标的位置?
有没有办法在雪豹中找到桌面图标的位置?我相信每个图标在Leopard中都是一个不同的窗口,但随着SL的出现,情况发生了变化Cocoa 获取桌面图标的位置?,cocoa,macos,osx-snow-leopard,finder,Cocoa,Macos,Osx Snow Leopard,Finder,有没有办法在雪豹中找到桌面图标的位置?我相信每个图标在Leopard中都是一个不同的窗口,但随着SL的出现,情况发生了变化 是否有API来执行此操作,或者有文件(如配置文件)来解析?文件和文件夹图标的位置在.DS\u存储文件中,它存在于任何目录中(Finder已查看过) 据我所知,桌面上的图标似乎是一个“AXImage”。如果您退出辅助功能检查器(在/Applications/Utilities/Accessibility Tools/)中),您可以检查屏幕上为项目报告的辅助功能信息 例如
是否有API来执行此操作,或者有文件(如配置文件)来解析?文件和文件夹图标的位置在.DS\u存储文件中,它存在于任何目录中(Finder已查看过)
<AXApplication: "Finder">
<AXScrollArea: "desktop">
<AXGroup: "._sideEntrance.psd">
<AXImage: "Untitled.icns">
Attributes:
AXRole: "AXImage"
AXRoleDescription: "image"
AXParent: "<AXGroup: "._sideEntrance.psd">"
AXWindow: "<AXScrollArea: "desktop">"
AXTopLevelUIElement: "<AXScrollArea: "desktop">"
AXSize: "w=16 h=16"
AXPosition: "x=106 y=412"
AXEnabled: "true"
AXFocused (W): "false"
AXTitle: "Untitled.icns"
AXFilename: "Untitled.icns"
AXURL: "file://localhost/Users/mdouma46/Desktop/Untitled.icns"
AXSelected (W): "false"
AXEnabled: "true"
属性:
AXRole:“AXImage”
AXRoleDescription:“图像”
AXParent:“
AXWindow:“
AXTopLevelUIElement:“
轴尺寸:“w=16 h=16”
轴位置:“x=106 y=412”
AXEnabled:“真”
AXFocused(W):“错误”
AXTitle:“未命名的.icns”
AXFilename:“Untitled.icns”
AXURL:“file://localhost/Users/mdouma46/Desktop/Untitled.icns"
AXSelected(W):“错误”
AXEnabled:“真”
可访问性API(无论如何,是较低级别的API)是他的服务的一部分:
/System/Library/Frameworks/ApplicationServices.framework/../HIServices.framework
(但是,您可以链接ApplicationServices伞形框架并将其导入到项目中)
我对这些API不太熟悉,所以我无法提供详细信息,但这将是一个开始
希望这有助于……您希望得到的结果有多准确?(.DS_存储文件不会像其他方法那样精确)。你在Leopard中使用了什么方法(可访问性API不再工作了吗)?我个人没有使用它,但根据这个(),图标和菜单栏是“特殊类型的窗口”,可以通过私有API访问。如果可能的话,我更喜欢100%精确的坐标。。。