Cocoa 获取桌面图标的位置?

Cocoa 获取桌面图标的位置?,cocoa,macos,osx-snow-leopard,finder,Cocoa,Macos,Osx Snow Leopard,Finder,有没有办法在雪豹中找到桌面图标的位置?我相信每个图标在Leopard中都是一个不同的窗口,但随着SL的出现,情况发生了变化 是否有API来执行此操作,或者有文件(如配置文件)来解析?文件和文件夹图标的位置在.DS\u存储文件中,它存在于任何目录中(Finder已查看过) 据我所知,桌面上的图标似乎是一个“AXImage”。如果您退出辅助功能检查器(在/Applications/Utilities/Accessibility Tools/)中),您可以检查屏幕上为项目报告的辅助功能信息 例如

有没有办法在雪豹中找到桌面图标的位置?我相信每个图标在Leopard中都是一个不同的窗口,但随着SL的出现,情况发生了变化


是否有API来执行此操作,或者有文件(如配置文件)来解析?

文件和文件夹图标的位置在.DS\u存储文件中,它存在于任何目录中(Finder已查看过)


据我所知,桌面上的图标似乎是一个“AXImage”。如果您退出辅助功能检查器(在/Applications/Utilities/Accessibility Tools/)中),您可以检查屏幕上为项目报告的辅助功能信息

例如:

<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%精确的坐标。。。