代码之家  ›  专栏  ›  技术社区  ›  Andrew M

获取桌面图标的位置?

  •  3
  • Andrew M  · 技术社区  · 15 年前

    有没有办法得到雪豹桌面图标的位置?我相信在Leopard中每个图标都是一个不同的窗口,但是SL改变了这一点。

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

    2 回复  |  直到 15 年前
        1
  •  4
  •   NSGod Luchian Grigore    15 年前

    据我所知,桌面上的图标似乎是一个“AXImage”。如果您退出辅助功能检查器(in/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"
    

    可访问性api(不管怎样,是较低级别的api)是HIServices的一部分:

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

    (但是,您可以链接ApplicationServices伞形框架并将其导入到您的项目中)。

    我不太熟悉这些api,所以我不能提供具体的细节,但那将是一个开始的地方。

    希望这有帮助。。。

        2
  •  1
  •   ocodo    15 年前

    文件和文件夹图标的位置在.DSJStury文件中,对于任何目录(查找者)都存在。