それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

zip(圧縮)ファイルを、ダブルクリックで指定フォルダに展開したい。

lhapuls の指定フォルダに解凍(展開)が便利だった。

lhapuls は死にました. zip ファイルは存命ですが、ソフトウェアが脆弱性や、その他理由で絶滅しそうです。

lhapuls はソフトウェアとしては、機能が他に比べて劣るところもあるが、「指定フォルダに展開」して「エクスプローラーで開く」機能が便利で愛用していた。

ほかのソフトウェアでは、ネットワーク(SMB)のZipを開いて展開すると、同一フォルダ内部に書き込みに行く。そのため、ネットワークフォルダや、USBドライブでは速度が遅くなったり書き込みエラーで止まったりで大変不便だった。

ダブルクリックで、指定箇所に展開してくれるのが本当に便利だった。

ダブルクリックで指定フォルダに解凍(展開)を7-Zip で実現したい。

ダブルクリックで、デスクトップへzip ファイルを展開したい。

そのために、レジストリを作成する。

レジストリを構成する。

関連付けの変更

CURRENT_USERの.zip の関連付け先を 7-zip.desktop(これから作る) という名前にする。

ProgID 7-zip.desktop の作成

7-zip.desktopを作成する

次のキーを順番に作る。

HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\
HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\shell\
HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\shell\open
HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\shell\open\command

コマンドを指定する。

作った、command キーHKCU\SOFTWARE\Classes\7-Zip.desktop\shell\open\command のdefault値に、次のようにコマンドを入れる。

"C:\Program Files\7-Zip\7zG.exe" x "%1" -oC:\Users\takuya\Desktop\*

コマンド指定のポイントは、-oパス名\* ( -o のあとにスペースなし)である。-o の直後のスペースは不要です。x は 展開を指定します。%1 はファイルパスが来ます。%1 はスペース付きのファイル名が来るので、ダブルクォーテーションで囲みます。

アイコンも指定しておく

アイコン用のキーを作成する

HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\DefaultIcon

デフォルト値に、次の値を入れた

"C:\Program Files (x86)\Lhaplus\LplsIcon.dll",101

今回は、サンプルのため、Lhaplus のアイコンを採用したが、別になんでもいい。

ダブルクリックで実行してみる。

ダブルクリックで実行して、デスクトップへ展開されることを確認。

レジストの例(コピペ用)

ProgIDのほう

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop]

[HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\DefaultIcon]
@="\"C:\\Program Files (x86)\\Lhaplus\\LplsIcon.dll\",101"

[HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\shell]

[HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\shell\open]

[HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.desktop\shell\open\command]
@="\"C:\\Program Files\\7-Zip\\7zG.exe\" x \"%1\" -oC:\\Users\\takuya\\Desktop\\*"

関連付けの方

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\.zip]
@="7-Zip.desktop"

快適になった

コレで、ある程度快適である。

USBメモリ内部でZip展開が行われて「ああああ、、」とならず、ネットワークフォルダで書き込みパーミッション無しで怒られることもなく、ダブルクリックでビューワーが開いてめんどうにもならない。

ただ、展開後のフォルダがエクスプローラーで開いてくれないのが難点である。

そこまで解決するには、PS1(パワーシェル)を作るか、exeをサクッと作るか、batファイル化、WSHを施さなくてはいけない。それは次回に持ち越し。

参考資料

僕の他にもダブルクリックで展開してくれよ。って思う人がいた。