2

特定のサイトのデスクトップにインターネット ショートカットを作成するアプリケーションを Swing で作成しています。Windowsでは問題なく動作します。Mac ではショートカットを作成できますが、カスタム アイコンを割り当てることはできません。プログラムで Mac 上の URL ファイルにアイコンを割り当てるにはどうすればよいですか?

これは私のコードです:

import java.io.*;

public class MACutils {
    private MACutils() {
    }

    public static void createInternetShortcutOnDesktop(String name,
      String target, String icon) throws IOException {
        String username = System.getProperty("user.home");
        System.out.println(username);
        String path = username + "/Desktop" + "/" + name + ".URL";
        createInternetShortcut(name, path, target, icon);
    }

    public static void createInternetShortcut(String name, String where,
      String target, String icon) throws IOException {
        FileWriter fw = new FileWriter(where);
        fw.write("[InternetShortcut]\n");
        fw.write("URL=" + target + "\n");

        if (!icon.equals("")) {
            fw.write("IconFile=" + icon + "\n");
              // icon has the path to my .png/.icns image
            fw.write("IconIndex=0");
        }
        fw.flush();
        fw.close();
    }
}
4

1 に答える 1

1

ファイル拡張子を付けてファイルを作成.weblocし、URL を含むファイルに plist を書き込むことができます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>http://hasseg.org/setWeblocThumb/#scmRepoInfo</string>
</dict>
</plist>

Mac OS X はアイコンをリソース フォークに格納するため、アイコンの書き込みはより複雑です。

Objective-C のソースを使用したサンプル アプリを参照してください。

于 2011-11-15T06:34:57.963 に答える