パスワード付きzipファイル作成ツール

昨今会社のPCは色々制限され便利なフリーソフトをインストールすることができない、さらにメールでファイルを添付する場合はパスワードを設定しないとエラーで戻ってくる。
今まで添付ファイルはWindows標準機能でzipファイルを作成しパスワードを後から設定していたがファイルを選択して右クリック送るでパスワード付きのzipファイルが作成できると便利だな〜という要望が・・・。

vbsやbatファイルで簡単にできるのではと思い調べてみると・・・うーん、ベストな解決方法がない。

仕方なくJAVAの開発環境はあるのでjavaで作れるか調べてみると標準のクラスではパスワード付きに対応していないがさすが作る人がいますね。フリーソフトのインストールはだめでも自作はOKらしいただフリーのライブラリはというとグレー・・・。

見つけたのはこちらのクラス(ソース付き!!)
http://www.ne.jp/asahi/hishidama/home/tech/soft/java/zip.html

サンプルを見ながら引数にパスワードとファイル名を指定したらzipを作るツールの作成は完了!!
後は呼び出し方でツールはインストーラ等も使わずファイルコピーですむようにjar形式、Zipユーティリティークラスはjarをjarに入れてもだめみたいなのでユーティリティもソースから一緒にコンパイル

作成したjarを起動するbatを作ることも考えたがここでjarをexe形式にしてみようと調べるとexewrapやJSmoothとかがあるらしく今回はjsmoothを使用、使い方は簡単ですぐexe形式に変換できたが唯一アイコンも設定しようとicoファイル設定したらjsmoothを使用が暴走・・・原因がわからずとりあえずpng形式でも対応しているのでこちらで対応。

作成したexeを呼び出すショートカットを作成しプロパティのリンク先でパスワードは固定で埋め込んでおきファイル名はドラッグドロップまたは右クリックの送るから渡されたファイル名をexeに渡すようにしてみた。
ここでプチはまりなので最初は引数をファイル名、パスワードの順番にしたところうまくexeに渡されない・・・色々試してみたところ固定にしたパスワードを第1引数にして第2引数にファイル名としたところ無事成功。

こんなイメージ
作成.exe パスワード %1

%1が必要かはテストし忘れた・・・もしかしていらなかったかな、とりあえず固定的な引数の前に動的な引数はだめなのがわかった。後はよく使うパスワードの種類分第1引数だけ違うショートカットをつくりsendToフォルダにコピーしてできあがり♪