2010-11-23 47 views
3

有沒有辦法在Snow Leopard中獲取桌面圖標的位置?我相信Leopard中的每個圖標都是一個不同的窗口,但是這隨SL改變了。獲取桌面圖標的位置?

是否有一個API來執行此操作或解析文件(如配置文件)?的文件和文件夾的圖標

+0

您要查找的結果有多準確? (.DS_Store文件不會像其他方法一樣準確)。您在Leopard中使用了哪些方法(可訪問性API不再有效)? – NSGod 2010-11-23 03:56:19

回答

4

由於據我所知,桌面上的圖標看起來像是「AXImage」。如果您離開輔助功能檢查器(位於/應用程序/實用程序/輔助功能工具/),則可以檢查爲屏幕上的項目報告的輔助功能信息。

例如:

<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" 

輔助功能的API(較低級的,無論如何),是HIServices的一部分:

/System/Library/Frameworks/ApplicationServices.framework/.../ HIServices.framework

(但是,您可以鏈接並將ApplicationServices傘形框架導入到您的項目中)。

我並不那麼熟悉這些API,所以我不能提供具體細節,但那將是一個開始的地方。

希望能對您有所幫助...