アイコン(ICOファイル)のすべてのサイズをPNG画像に抽出することに焦点を当てます。EXEファイルから、Wineがこれを自動的に実行するようです。
インストール後foobar2000、Wine(おそらく)は~/.local/share/applications/wine/Programs/foobar2000.desktop
次の内容でデスクトップエントリを に作成しました。
[Desktop Entry]
Name=foobar2000
Exec=env WINEPREFIX="$HOME/.wine" wine C:\\\\windows\\\\command\\\\start.exe /Unix "$HOME/.wine/dosdevices/c:/users/Public/Start\\ Menu/Programs/foobar2000.lnk"
Type=Application
StartupNotify=true
Comment=Play, organize and tag your music.
Path=$HOME/.wine/dosdevices/c:/Program Files (x86)/foobar2000
Icon=3C17_foobar2000.0
結局、Icon
その鍵が私の注意を引き付け、私はそれが次に基づいていることを発見しました。アイコンテーマ仕様。周囲を検索しながら、私は~/local/share/icons/hicolor/*/apps/
このアイコンファイル(含まれているフォルダごと)を含むディレクトリを見つけまし3C17_foobar2000.0.png
た。
私の質問は、Wineがアプリケーション(またはショートカットファイル)からこれらの画像ファイルをどのように生成するのですか?
答え1
ワインを含むwinemenubuilder
プログラムはこれを処理します。 Windowsのショートカットを使用して、一致するFDO(FreeDesktop.Org).desktop
ファイルを生成します。アイコン抽出はこれの一部であり、open_module_icon
関連する機能によって処理されます。アイコンを抽出するには、ショートカットwinemenubuilder
に対応する実行可能ファイルを見つけて(必要に応じて作成されるのを待つこともできます)、Wineの機能を使用して埋め込みリソースをロードし、アイコンを見つけLoadResource
て適切な画像形式に変換します。
wine winemenubuilder /path/to/link.lnk
.desktop
リンクをファイルに変換し~/.local/share/applications/wine/Programs
、利用可能なアイコンを抽出して変換し、対応するサブディレクトリに保存します~/.local/share/icons
。 (/path/to/link.lnk
Wineのドライブマッピングを使用してアクセスできる必要があると思います。Wineにインストールされている.lnk
ファイルをうまく処理します。)
wine winemenubuilder -t /path/to/link.lnk /path/to/icon.png
link.lnk
指す実行可能ファイルの最初のアイコンを抽出しますicon.png
。