RemoteApp 環境を作っていると、アプリケーション アイコンの物理ファイルが欲しくなる時があります。
アイコン抽出ツールは色々ありますが、PowerShell でも簡単に抽出できたりします
(PowerShell 6
(RC) は .Net Core が System.Drawing.Icon をサポートしていないので PowerShell 5 以前でのみで使えます)
関数にするとこんな感じ
|
と、ここまで書いて問題発生。
.NET ハンドリングでは 16
色アイコンしか抽出できなく、この問題を解決するには Win32API を叩くしかないぽい... orz
色々調べていたら、PowerShell Gallery にコマンドレットが公開されていました。
PowerShell Gallery | IconExport 2.0.0
https://www.powershellgallery.com/packages/IconExport/2.0.0
Export-Icon from DLL and EXE using PowerShell
https://gallery.technet.microsoft.com/scriptcenter/Export-Icon-from-DLL-and-9d309047
モジュールインストールは以下のようにします。
Install-Module -Name IconExport |
このモジュールをインストールすると Export-Icon コマンドレットが使えるようになります。
Export-Icon -Path <アイコンを抽出する .exe or .dll> -Directory <出力ディレクトリ> |
コードを見たい場合は、Save-Module -Name IconExport -Path <path> でモジュールダウンロードすればソースを見る事が出来ます。
インストールしたモジュールをアンインストールする場合は、以下のようにします。
Uninstall-Module -Name IconExport |
関数を PowerShell プロンプトで実行する
http://www.vwnet.jp/Windows/PowerShell/2016100401/UseFunctionInPsPrompt.htm
Copyright © MURA All rights reserved.