LHAComp

最新版 01/05 2024

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

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

【インストール/アンインストール方法】
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
フォームのメニューでもマウスの右クリック選択を認める様にしました。
編集メニューの適応しない物を削除するのはやめて常に同じメニューで淡色(ディスエイブル)で対処する様に  リストのメニューでの右コンテキストメニューの リストに貼り付け動作が場所によっては効かないのを 修正しました。
2018/01/25 Ver 2.460
リストに表示されている ファイルや フォルダーを ダブルクリックで 開く時は認識を良くする為に 必ず 新しいウィンドウで開く事で フォアグラウンドを確実にし 二重に重複したウィンドウは閉じる様にしました。 又 この時に渡すコマンドもワードアラインを取って若干効率を良くしました。
2018/09/05 Ver 2.480
メッセージ取得ループをより安全でメッセージの種類によって偏り無く受け取れるコードにしました。
メニューを消す為等に使用する疑似キーボード出力を必ず完結して後に残らない様に 又 他のプログラムに頼る 事も 影響を与える事が無く 自分の中だけで廻す様にしました。
2019/05/15 Ver 2.500
フォームのサイズの調整をした時に使用ダイアログの子ウィンドウ ( テキスト エディット ボタン 等 ) のサイズを 調整しなかったのでサイズがちぐはぐになっていたりアイコンが半分しか表示されない等の不整合を修正しました。
2019/06/10 Ver 2.520
フダイアログの DLU とピクセル DPI 変換は は画面環境によって変わり プログラム作成環境で 子ウィンドウの 幅まで含めて 調整する事は出来ないので ダイアログを表示する時に ボタンなどの子ウィンドウの 位置 サイズを 再調整するコードを入れてサイズの不整合を修正する事にしました。
2019/08/30 Ver 2.540
フォームで使用する フォントは エクスプローラーの使用しているフォントと同一 物として 画面表示サイズが 違和感の無い物にし 高精細ディスプレー上でもサイズ対応を良くしました。
Windows 10 1809 から API の返す値が変わり *.csl ファイルメニューを並べる時に 環境によっては アイテムの 数が 高さ方向にオーバーして見えない物が出てしまうのを修正しました。
2020/01/15 Ver 2.560
フォルダー選択ダイアログの表示位置が通常の保存や開くダイアログと同様な位置に 開いて 画面から はみ出る事が無い様にしました。
又 デフォールト基準フォルダー LCQファイル作業フォルダー 指定 ダイアログ への ファイル フォルダーの ドロップでもフォルダー指定が出来る様にしました。
2020/03/15 Ver 2.580
LZH ZIP 7z のボタンを変えたら 圧縮先ファイル の表示も同時に変えるようにして 出力が解りやすい様にしました。
各種 ダイアログのタイトルバーに LHAComp のアイコンを表示する事にしました。
2020/05/30 Ver 2.600
マルチモニター環境に対応して どのモニターにも 移動しても使用可能になりました。 同時に ワークリストメニューも 置かれた所のモニターに合わせて表示される様になりました。
2021/11/10 Ver 2.640
実行ボタン は右クリックも認める様にして右クリックの時には 圧縮先ファイルが有った時でも常に上書き 保存で 設定の 作業メッセージを表示 と反転動作をする様にしました。
案内 確認メッセージ のダイアログも 右ボタンクリックでの選択も認める様にし この場合も 設定の 作業 メッセージを表示 と反転動作をする様にしました。
2022/03/20 Ver 2.660
内部的に動作をやり取りするメッセージポストが機能をしたり表示を変えたりする ウィンドウズメッセージに 係らない様に順序正しく廻る様にして安定性を上げました。
Combo リストと 作業ファイル表示用の リストが紛らわしいので ComboBox の ドロップダウンリストの メニューは 先頭に Cb と付ける様にしました。
2022/10/15 Ver 2.680
Windows 11 での ラウンドコーナーが一番下のドロップダウンコンボと寸法関係が ギリギリになってしまうので 全体的にサイズを再調整しました。
2023/02/10 Ver 2.700
コマンドラインの有った時 作業ファイルを開いた時は 設定を残しません。そんな時でも タイトルバー 右クリックでの システムメニューの閉じるを右クリックで選択すると その時の設定を 残して終了する様にしました。( ファイルメニューの 現状を保存 + 終了です。)
2023/04/30 Ver 2.720
*.lcq のファイルメニューを縦に並べる時に Windows 11 から 一列だと多少余裕を取る様になり 並べた メニューが予期しない形になるのを避けるコードにしました。
ファイルメニューの文字や 開くダイヤログ等の文字を今様にしました。
2023/07/05 Ver 2.740
自分のパスと コマンドラインを取得する所を新たな物にして 独立性を高めパスを再使用する時の 間違いを少なくしました。 又 自分のパス最終の値の再確認も入れて安全性を高めました。
確認メッセージ の 右ボタンクリックは 設定の 後にフォルダーを開く と逆の動作(排他的)になる様にしました。
バージョン に出る メールアドレスを最新の物に変えました。
2023/11/20 Ver 2.760
圧縮 解凍 結果を表示するダイアログが小さくて結果を見るのにスクロールしなければならない時が有るので もう何行か表示行を増やして見通しをよくしました。
2024/01/05 Ver 2.780
タイトルバー右クリックでの システムメニューの閉じるを右クリックで選択するとその時の設定を残して 終了する ( ファイルメニューの 現状を保存 + 終了 ) は無意識の間違いが起こりやすいのでやめにしました。
ダイアログ の Control ID が被っていて悪さをしそうな所を修正しました。
ダイアログを出現させる時のコードを共通化してコード効率を良くしサイスも減少させました。

最新版 01/05 2024 Ver 2.780 Size 37 kb LHAComp のダウンロード

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