LHAComp

最新版 09/10 2017

【概要】
どちらかと言うと File の圧縮に焦点を絞ったプログラムです。( アーカイバ型式 LZH ZIP 7z )
特に右クリックの送る のメニューに加えて便利に使用できることを考えて制作したつもりです。もちろん解凍もできます。
フリーソフトなどを公開する時に LZH 等で圧縮 をして配布しますがバージョンが上がるたびに此を 圧縮しなければなりません。 毎回デスティネーションファイルは同じ物ですし、ソースファイル も同じ物です。 そんなときに便利なように圧縮するときのデスティネーションファイルの経歴の記録を保存する ように また定型作業も名前を付けて保存できるように制作しました。
もちろん通常の圧縮も便利にできるようにはしてありますがより便利に使えるのは SendTo フォルダーにショートカットを作って使用した時に LHAComp を選んでデスティネーション ファイルを確認して圧縮ボタンを押すだけ と言う動作にしてあります。 一度使用していただければ合う方にはとってもよく合うのではないかと思います。
Miccoさんの UNLHA32.DLL を LZH に ZIP 7z には 7-zip32.dll ( M.Akita さん作 ) を使用します。

【動作環境】
日本語 Windows 2000 / XP / Vista / 7 / 8 ランタイムは UNLHA32.DLL が有ればLZH の 解凍 解凍 が 7-zip32.dll が有れば Zip 7z の 解凍 解凍 が出来ます。どちらかは必須です 他には特に必要有りません。

【インストール/アンインストール方法】
LHAComp.exe LHAComp.chm を同じフォルダーに置いて 適宜ショートカット等を作って使用して下さい。
レジストリーは使用しませんので LHAComp.exe LHAComp.chm と LHAComp.txt それに作成したショートカット等を削除して下さい。

【使用方法】 【注意事項】 【コマンドライン】 【制限事項】
ヘルプファイルを参照して下さい。

【使用に関して】
此の プログラムは バグ 動作不良などが無い事を期待されて作られてはいますが 違う環境での 正常動作 又 誤動作から来る損害など についての 保証はいたしかねます。 ただし ご意見 提案 動作不具合報告等は歓迎いたします。

【履歴】
Ver 1.00 1999/01/10
とりあえずの公開。
Ver 1.03 1999/01/28
作業後のフォルダーオープンを整理し余分に開かないようにしました。
Ver 1.031 02/08
作業後の確認窓を小さくして上下比較しやすくしただけです。
Ver 1.04 07/29
スクリーンの端の方や最小化状態で終了し、次回起動したときに画面に現れなくなる事が あるのに対応しました。
Ver 1.05 11/15
VB 6.0 に変えました。ファイルのドロップでファイル名を取得するところを変えました。
Ver 1.06 04/30
UNLHA32.DLL が Ver 1.45 から改行を CrLf を返す様になったのでそれに対処しました。
Ver 1.07 09/18
メッセージのタイトルの修正と 作業ファイルをソートして表示するようにしました。
Ver 2.000 10/13
VB のランタイムが無い環境でも動作するようにVC++ で書き直し機能もアップさせました。 但し 今までの ワークファイルは使用できませんのでクリップボード経由で書き換えて下さい。
Ver 2.001 10/18
細かな仕様の改善やコードの効率を計りました。
Ver 2.002 10/28
圧縮先ファイル 解凍先フォルダーの選択をより分かり易く又フォルダーも選択できる様にし 此処の機能をアップしました。 又 解凍作業も上書き確認の出る方に変えました。
Ver 2.003 10/29
一度だけで終わる と 後にフォルダーを開く との組み合わせによっては自分が 終了出来なくなる事を修正しました。
Ver 2.004 11/01
細かな所のガードを固め コードの整理 機能のアップをしました。
Ver 2.010 11/06
ファイルにもディレクトリー情報も付加できる様にし自己解凍庫の制限も無くしました。 此の伴い ディレクトリー情報を付加 サブディレクトリーも探すのオプションを少々変えました。 その他不具合の出そうな所を改善しています。
Ver 2.011 11/12
プログラム効率のアップと サイズの大幅減少をしました。
Ver 2.012 11/20
無駄なコードを省いて起動時間の短縮と 解凍基準フォルダー選択 ダイアログ後の メモリー解放を忘れていたのを修正しました。
Ver 2..013 01/05
リストをクリップボードに入れる所の改善をしました。
Ver 2..014 01/05
ワークリストをメニューから選んだ時は位置を変えないようにし作業後のオープン フォルダーの所の改良をしています。
Ver 2.015 06/17
効率の良いコードにする事で立ち上げスピードの動作速度のアップと作業サイズの 減少をしました。
Ver 2.016 07/30
コンボボックス リストボックスの ファイル名フォルダー名をクリップボードに入れる 所のコードを確実な物に変えました。
Ver 2.017 09/24
 フォルダーを探す所 開く所を最新の物に変え動作の安定サイズの減少 をしました。
Ver 2.018 11/07
Win 2000 で対象ファイル数を表示する所がおかしいのを修正しサイズの大きな コマンドラインのオーバーフローに対処しました。又送られたコマンドライン分解を効率の良い物 とし フォント及びサイズはシステムの使用している物にしてプログラムのサイズとリソースを減ら しました。
Ver 2.020 2002/01/04
出力先をローカルドライブ ネットワーク先と区別して判断するようにしました。 その他 全体的に最新結果のコードに合わせて細かい所の効率をアップし良く使う関数のスピード アップ サイズの減少をしました。
2002/03/20 Ver 2.021
常に使用する コマンドラインの分解 フルパスにする所 最後の結果を表示する 関数を見直して無駄のない物にしスピードアップ サイズの減少をしました。
2002/05/26 Ver 2.030
Window を製作する所の余分な物を除き効率化してスピードアップ サイズの減少を しました。( 実際に EXE ファイルも小さくなりました。) 又 拡張子の無いファイルのドロップで選択拡 張子の コンボボックスにおかしな拡張子が入る不具合を修正し ワークファイルの追加の扱いも はっきりさせました。
2002/06/07 Ver 2.031
リストボックスのファイル名の表示幅を正確に取る様にしました。又リストボックスの 水平スクロールバー表示が Win 2000 環境で旨く行かないのを修正しました。その他細かい所を 修正し効率を良くしています。
2002/07/06 Ver 2.032
1 常に使用して何回も通る ファイルのフォルダー 名前 を分解する所のコードの効率 を上げ スピードアップとサイズダウンをしました。
2002/07/27 Ver 2.033
内部の関数を整理共通化してかなりのサイズダウンを コードを見直して若干の スピードアップをしました。後 細かい仕様の間違いを修正しています。
2002/08/07 Ver 2.034
文字コードを調べる所をより安全サイドに振りました。
2002/08/31 Ver 2.035
リスト部にフォーカスの有る時の Delete キー は 選択リストを除くの機能にして 通常の Delete 操作と整合性を取りました。この為リストの右クリックメニューに 此を除くを新設 しました。リスト部のメッセ−ジの処理の仕方を改善して安定性を良くし サイズもダウンしています。
2002/11/25 Ver 2.036
比較的良く出る メッセージダイアログの出し方を見直して効率を良く見た目の 整合性を取り リソースを少なくしました。出来るだけ Work バッファは必要な時に取得する事にして 無駄を省きました。
2003/02/01 Ver 2.040
LHAComp.LCQ の と *.LCQ の作業ファイルが同じ為に *.LCQ を Load すると 作業 Path が不用意に変えられてしまう不都合を防止しました。又 此に伴い作業 Pathだけを変える 機能を新設しました。その他かなりのコードを見直して色々な所のスピードアップ 全体的なサイズの 大幅ダウンをしています。
2003/05/11 Ver 2.041
送るから来る 複数ファイル名のコマンドライン解析にかなりの柔軟性を持たせ 以前は C:\Windows \\***\C\Windodws は認められ無かったのを認識できる様にしました。 ( この様な事は殆ど無い筈ですが ) 此に伴い コマンドライン解析 ル-プは一回になりこの部分での スピードアップ サイズダウンをしました。
2003/05/27 Ver 2.042
定型圧縮を記憶している LCQ リストメニューをその都度作る事にして常に現在の 状態を表示出来る様にし 此の辺りの コードもだいぶ整理され立ち上がりに余分な事をしなくなり 起動が速くなりました。現在 参照中のフォルダーと 使用中のフォルダーが違う時の表示がはっきり 解る様にチェックを付ける様にしました。 又 *.LCQ ファイルについては FullPath Name.LCQ Name 全て 受け付ける様にしました。
2003/06/24 Ver 2.043
過去の遺物的な関数を整理しメニューの作り方を改善し立ち上がり サイズ 共に 若干の改善をしました。
2003/08/23 Ver 2.044
DLL に送るコマンドライン作成の効率化とその他気が付いたコードの改善をしました。
2003/12/03 Ver 2.050
圧縮先ファイル は実行後毎回コンボボックスに追加していましたが此をしない方が 良い事も有る と思われるので 設定メニューに 実行後コンボに挿入 と言う オプション を付けて切り 替えられる様にしました。此に伴って追加は Enter と Insert キーに割り当て Enter Esc キーで不要な 音がしていたのもしない様にしました。
2004/01/28 Ver 2.051
コマンドラインで送られて来るファイル名の確認を違う方法で重複してしているのを 整理しました。その他この辺の所を整理し効率を良くしました。
2004/07/18 Ver 2.052
設定ファイルの書き込み 各コンボボックスの動作機能のコードの整理で効率化 サイズダウンをしました。
2005/01/13 Ver 2.053
コンボボックス リストボックスのアイテムのソートのコードを改善し出来るだけ 入れ替えのない無駄の無い物にしてソートのスピードをアップしました。
2004/05/31 Ver 2.054
反応の無いプログラム( ハングアップしている物 ) に対して此に巻き込まれて 自分が固まってしまう事の無いようにしました。
2004/09/03 Ver 2.055
内部的に保持している 作業パスと 基準パスが \ 付きで有るか無いか はっきりしていなくて解凍 圧縮の基準パスに常に意図した名前で作業が出来ない不具合を 解消しました。
2005/11/26 Ver 2.060
直に立ち上がる様にコードを変えリンク方法を変えて余分な事もしない事により サイズダウン スピードアップをしました。又 コマンドラインの解析を効率化しています。
2005/12/09 Ver 2.062
立ち上げ時の コマンドラインの位置決定 設定ファイルの読み込みとコマンドラインの 解析をするのを同じ流れの中でする様にして 同じ様なループを三回もしない事によりスピードアップ と サイズダウンを ワークバッファの拾得方法を変えて効率化しています。 又 送られたコマンドラインの ファイル名 フォルダー名 取得方法をWin 98 / NT 系で変えて NT系では ( 2000 XP NT )余分な事をしない様にしました。 後 呼ばれる方法によっては設定ファイルを読み込めない不具合を修正しました。
2006/01/01 Ver 2.063
リストに複数行貼り付けた時に順序が逆になってしまうのを修正しました。
2006/03/29 Ver 2.064
他の要素やプログラムによって フォームの最全面設定が変えられた時に設定 メニューとの整合性が取れなくなるのを防止しました。後 フォルダーを開く関数のコードを効率化 しました。
2006/05/20 Ver 2.065
フォームが必ず画面の中に入る様にし此の画面サイズもデュアルモニターに 対応させました。
2006/06/24 Ver 2.066
LCQ のファイルリストを作る所此にチェックを付ける所を効率化してサイズも 減少させました。
2007/01/10 Ver 2.067
解凍基準フォルダー選択のダイアログのスタートとメモリー解放を若干効率の 良い物にしました。
2007/01/10 Ver 2.070
LCQ のファイルリストを作る所をメニューを作る前にリストをオンメモリーで 処理するようにして負荷を軽くしました。
2007/10/02 Ver 2.072
LCQ のファイルリストのメニュー作成に使用するバッファの取得法を変えて この部分の効率をアップし 又 バッファフルの時の復帰を速くしました。
2007/12/19 Ver 2.074
ファイルを選択してフォルダーをあける前に そのフォルダーが開いている時に 此を閉じるのを Windows Vista がサポートしていないメッセージを使用していて閉じる事が出来ない のを 別のメッセージに変えて修正しました。
2008/09/29 Ver 2.080
立ち上げ時に 無変換 キーを押して立ち上げると LCQ ファイルリストメニューを 出して此を選択する事で直接此のリストから始められる様にしました。
2008/10/06 Ver 2.081
圧縮先ファイルに何も入れずに出力先選択を押すと場合によっては無い物を 探してハングアップ状態になるのを防止しました。
2009/04/30 Ver 2.100
コマンドライン解析部分を若干ですが効率化しました。 Windows 98 用のメモリマネージャー用の読み込み時間短縮オプションをやめてアプリケーションの サイズ ( ディスク サイズ )を縮小しました。
2009/08/27 Ver 2.102
ComboBox のテキストが無かった時の対応を加え 又此に続くメニュー操作の 為のテキスト取得を共通化してコード効率を上げました。
2010/01/05 Ver 2.110
読み込みに行ったファイルが 読み取り専用属性を持っていた時にオープン 出来ずに読み込みに失敗してしまう不具合を修正しました。
2010/07/30 Ver 2.120
フォームのマウスの左右クリックでの動作やメニューを出すそれそれの位置の 判断を API 任せでなく自身で判断する様にして柔軟性を高め選択負荷を軽い物としました。 後 アイコンが実情と会わなくなっていたのを修正しました。
2010/09/03 Ver 2.122
ダイアログ Procedure の 変数の独立性を高め 他のバッファと重なる可能性の 有るパスを排除しました。
2010/12/06 Ver 2.124
他のプログラムに制御を移しその結果を待つのを確実にシステムに制御が移り 結果が出るのを待機出来るコードにしました。
2011/02/15 Ver 2.126
複数ファイルの選択 ファイル名の取得部分のコード直に対処する物に変えて 此の部分での スピード サイズ共に改善しました。
2011/05/21 Ver 2.200
使用 DLL を unzip32.dll から 新たに 7-zip32.dll を使用する事にして zip 7z も lzh と同様に 扱える様にしました。後 大きく コードを見直したのをきっかけに 細かい所の動作 不具合を手直しして サイズ の減少 使い勝手 の向上等大きく改善しています。 又 設定メニューの フォルダー情報を付加 の時に空のフォルダー情報も保存する様にしました。
アクションの設定が増えたので以前の *.LCQ の作業ファイルでは アクションの設定が違って来て しまうので 以前の *.LCQ の作業ファイルを確認手直しして上書き保存をして下さい。
2011/11/27 Ver 2.210
コマンドラインの与え方のケースによっては立ち上げに失敗したりメモリーエラーになる事を排除し 立ち上げ時の動作も多少変えました。それに伴って設定ファイルの読み込み書き込みの所 後 何カ所かの 気の付いたコードをを効率化して スピード サイズ 共に改善しています。
2011/12/31 Ver 2.211
コボンボボックスのキー入力が一部の文字でおかしかったのを修正しました。
2012/07/25 Ver 2.214
確認先のフォルダーを開く前の作業で一度フォルダーを閉じる時にもう一つ汎用性の高いメッセージを 使用して確実に閉じるのを待つ様にしました。
テキストクリップボードデータが常に Windows 内部で使用している Shift JIS ( MS932 )でない時が あるので テキストクリップボードデータを取得する時には Unicode 優先で取得して此を MS932 に 変換する様にしてコード違いから来る取り違いを無くしました。
2012/11/27 Ver 2.220
テキストクリップボードデータを取得する際に全く廻る可能性の無い Shift JIS での取得コードと Windows 95 / 98 / ME の送るから来る 8.3 形式のファイル名展開コードを削りサイズダウンしました。
2013/09/25 Ver 2.230
zip 7z 圧縮の時に 設定の フォルダー情報を付加 オプションを LZH と同様に 最後のフォルダー名をトップにした 相対パスで圧縮する事にして違うパスの圧縮でも無視されず二重手間にならない様にしました。
DLL に渡すコマンドライン作成コードの効率を良くし この時使用する文字列定数の利用効率も良くしました。 又 ある種の数値変換方法を効率の良い物に変えました。
2013/10/10 Ver 2.234
出力先選択 ダイアログのメッセージのやり取りを解析して整理し 動作をより正確にして 余分なコードも整理し 此処の所のサイズも大幅ダウンさせました。DLL に渡すコマンドライン作成コードは確認を取りながら組み立てる様に しました。
ヘルプファイルは 出力先選択 ダイアログがフォルダーも選択出来る事を明記しました。
2013/11/30 Ver 2.235
子ウィンドウのコントロールには無効なウィンドウスタイルの指定をしている箇所を修正し サイズ的にぎりぎりな箇所も調整しました。
2014/05/28 Ver 2.236
コンボボックス や リストアイテムをテキストクリップボードにコピーする際に 必要の無いクリップボードクリアーは しない様にしました。
2014/12/30 Ver 2.300
設定メニューに リスト チップ を設定し有効にすると リストにあるファイルの 更新日時と サイズ 情報を ツールチップで表示する様にしました。
コマンドラインからファイルなどを指定して動作する時にもタイトルバーに LHAComo の後にデフォールトの ファイル名を加えて多重起動時の識別をし易くしました。
2015/02/15 Ver 2.302
Windows 8 10 で Windows の色の設定によってはフォームの色がちぐはぐになってしまうのを修正しました。
2015/02/15 Ver 2.302
DPI の仮想化による スケーリングの影響で文字が滲んでしまったりフォームが 大きく表示されてしまう事が有るので 此をを防ぐ為 内部的には スケーリングに対応している事を 宣言する事でOS のスケーリングをさせない様にしました。
結果を表示するダイアログを調整し内容が無駄なく表示出来る様にしました。
2015/06/20 Ver 2.400
DPI の仮想化による スケーリングの影響で文字が滲んでしまったりフォームが 大きく表示されてしまう事が有るので 此をを防ぐ為 内部的には スケーリングに対応している事を 宣言する事で OS のスケーリングをさせない様にしました。
ヘルプファイルを LHAComp.hlp から LHAComp.chm に変えて参照に手間のかからない様にしました。
結果を表示するダイアログを調整し内容が無駄なく表示出来る様にしました。
2016/04/28 Ver 2.410
COM 使用の宣言を最初にスレッドでの宣言に代表させて 此を使用する動作の安定をさせ 重複の無駄を無くしました。
2016/12/31 Ver 2.420
フォルダーを開ける時に確実にアイテムを選択して開けられる方法にしてクローズを確認するのに伴う余分な待ちを 無くし 反応を良くしてサイズを減少しました。
他のプログラムやフォルダーを開ける時の必要のない API コールをやめました。
2017/09/10 Ver 2.440
フォームのメニューでもマウスの右クリック選択を認める様にしました。
編集メニューの適応しない物を削除するのはやめて常に同じメニューで淡色(ディスエイブル)で対処する様に  リストのメニューでの右コンテキストメニューの リストに貼り付け動作が場所によっては効かないのを 修正しました。

最新版 09/10 2017 Ver 2.440 Size 34 kb LHAComp のダウンロード

  Windows 95 98 ME からの送る完全対応版  Ver 2.214 07/25/2012 37 kb
    ( Win 2000 以降では意味が有りません。)
−戻る−