Copyright: Copyright (C) 1993-1995 Yamasita Akira


目次
  Sorbe version 1.21 Help

Copyright (C) 1993-1995 Yamasita Akira (AlterBrains)

　Sorbe は、Windows 上で LHA などのアーカイバを非対話的に利用する場合に役に立つツールです。

　普通のアーカイバ操作ソフトだと対話的で困る場合、すなわちマクロで自動運転するような場合の利用を念頭に置いています。

　Sorbe は副作用を最小にするため、ini ファイルを作成しません。

　利用自由、無保証です。

・概要

・インストールの方法

・アンインストールの方法

・利用方法

　　・オプション

　　・実行できる DLL

　　・動作の細部

　　・うまく動かない時の対処

・関連するファイルの取得方法

・謝辞

・権利・転載許可など

・履歴

・Sorbe に関するバグ・レポートやご要望は、NIFTY の FWINF MES 3 へお願いします。レスポンスが悪いときは GHF00566 宛にメイルで催促してください。


  Sorbe version 1.21

　　　　　Copyright (C) 1993-1995

　　　　　Yamasita Akira (AlterBrains)

　　　　　NIFTY: GHF00566


概要

はじめに

■Sorbe は、Windows のソフトから DLL 形式のアーカイブソフトを処理するためのソフトです。

■Sorbe は LHA.DLL, UNLHA.DLL を「ＣＰＵを占有する」モードで実行します。

■例えば、秀丸マクロや秀Termスクリプトから lha を実行したい場合などに有用です。

■LHA.DLL, UNLHA.DLL は同封していません。（FWINF の LIB の DLL 置き場にあります。）

■Sorbe の実行には、VBRJP200.DLL が別途必要です。

　VBRJP200.DLL は FWINF の LIB の DLL 置き場にあります。

利用者の責任で使用して下さい

■このソフトは無料で使用できます。

■このソフトは無保証です。使用者の責任で使用して下さい。

　私は、このソフトの使用又は使用不能から生ずる障害・損害に関して、一切の責任を負いません。

こういう使い方はできません

■例えば、foo.lzh というファイルをダウンロードし、このファイルの中をちょっと覗いてみたいという場合があります。こういう時は Sorbe ではダメです。

　つまり、ファイルマネージャで foo.lzh をダブルクリックするとユーティリティが起動し、中身が見れて、さらにその中身をダブルクリックするとエディタ等が起動する・・・という使い方はできません。

　こういうソフトが欲しい方には、私も使っている LHfe をお薦めします。

　LHfe は nonki さん（GCA00726）作のシェアウェアです。

（LHfe の 93.12.05 現在の登録料は 1000 円です。）

■Sorbe は、[はじめに] にも書きましたように、マクロなどから定型的に lha などを使いたい場合のためのソフトです。誠に勝手ながら、LHfe と競合するような機能をつける予定は将来にわたってありません。


インストールの方法

　Sorbe 本体のインストールには特別な規則はありません。ここでは標準的な方法を示します。

　どこかのディレクトリに sorbe.exe を置いて下さい。

　Sorbe の様な小物 Windows ソフトを置く場所を決めておくと良いかも知れません。

　パスの通ってない場所に置いた場合は、マクロなどで Sorbe を実行する際にフルパスで指定する必要があります。

　sorbe.hlp はどこかに置いておく必要はありませんが、後で参照するために sorbe.exe と同じディレクトリに置くのがいいでしょう。

　sorbe.txt は削除してよいでしょう。

　実行には VBRJP200.DLL が必要です。（VBRJP200.DLL を持ってない）

　また、LHA.DLL を使う場合には LHA.DLL を Windows の system ディレクトリにでも置いておく必要があります。

　UNLHA.DLL を使う場合には、UNLHA.DLL と LHA.DLL を Windows の system ディレクトリにでも置いておく必要があります。

　Sorbe の古い version（sorbe110.lzh に入っていた version 1.10）をお使いの方へ

　Sorbe 1.10 は sorbe.exe が置いてあるディレクトリに sorbe.ini を作成しましたが、Sorbe 1.21 は sorbe.ini を参照しません。sorbe.ini は削除して頂いて結構です。残しておいても悪さはしませんが。


アンインストールの方法

　Sorbe をアンインストールするには、sorbe.exe と sorbe.hlp を削除して下さい。sorbe.txt があればこれも削除して下さい。


利用方法

(1) 書式

　sorbe.exe [オプション] 実行DLL名 実行DLLに渡すコマンド

　例：sorbe.exe -d c:\tmp lha a c:\test.lzh *.txt

　　　sorbe.exe unlha x c:\test.lzh

・Sorbe のオプション

・Sorbe で実行できる DLL

(2) アプリケーションからの呼び出し例

　LHA.DLL を用いて、c:\test.lzh を c:\tmp で解凍する例を示します。特に秀丸マクロの場合にはディレクトリ区切りを "\\" と書くことに注意して下さい。sorbe.exe は c:\win\bin にあるものとします。

　(a) 秀丸マクロの場合

　　runsync2 "c:\\win\\bin\\sorbe.exe -d c:\\tmp lha x c:\\test.lzh";

　(b) 秀Term スクリプトの場合

　　runsync2 "c:\win\bin\sorbe.exe -d c:\tmp lha x c:\test.lzh"


実行 DLL に渡すコマンドについては、各 DLL についての説明を参照して下さい。（Sorbe で実行できる DLL）


オプション

（書式については 利用方法 を参照して下さい。）

(1) -a：about を表示する

書式：-a

機能：about を表示して Sorbe を終了します。

(2) -ow：実行結果をファイルに出力する

書式：-ow FileName

機能：実行結果を FileName に出力します。既存ファイルを指定すると上書きします。

(3) -oa：実行結果をファイルに追加出力する

書式：-oa FileName

機能：実行結果を FileName に追加出力します。新規ファイルを指定した場合は -ow オプションと同じ動作です。

(4) -oc：実行結果をクリップボードに出力する

書式：-oc

機能：実行結果をクリップボードに出力します。

(5) -d：実行ディレクトリを指定する

書式：-d DirName

機能：カレントディレクトリを DirName に変更してから指定 DLL を実行します。Sorbe 終了時には、元のディレクトリに戻します。

注意：カレントディレクトリの変更は、他のソフトウェアの動作に影響を与える可能性があります。特に Sorbe での処理に時間が掛かる場合には注意が必要です。


実行できる DLL

　Sorbe では

・LHA.DLL　(version 1.10)　（LHA.DLL の利用例）

・UNLHA.DLL　(version 0.41)　（UNLHA.DLL の利用例）

を実行することができます。

各 DLL が version up された場合の注意

　version up された DLL を使う場合には、動作の細部 の各項に記載されている関数の仕様に変更がないことを確認して下さい。


LHA.DLL の利用例

　Sorbe を作成する時に対象とした LHA.DLL の version は 1.10 です。異なる version の LHA.DLL を使用する場合には 動作の細部 に記載されている関数の仕様に変更がないことを確認して下さい。（LHDL110A.LZH 同封の LHA.DLL は、LHDL110.LZH 同封のものと同内容です。）

(0) 総論

　LHA.DLL では LHA.EXE と同様のコマンド・オプションが使えるようです。

　しかし、LHA.EXE の新しい機能は実現していません。具体的には LHA.EXE version 2.60 以降で作成される、lh6 形式には対応していません。lh6 形式アーカイブの解凍には UNLHA.DLL が使えます。

（詳しくは UNLHA.DLL 付属の unlha.txt を参照して下さい。）

(1) c:\test.lzh を解凍する時

　(a) 解凍先のディレクトリに移動する。

　(b) sorbe.exe lha x c:\test.lzh を実行する。

　（ディレクトリの移動は Sorbe のオプション でも可能です。）

(2) *.txt を c:\test.lzh に圧縮する時

　(a) 圧縮したいファイルのあるディレクトリに移動する。

　(b) sorbe.exe lha a c:\test.lzh *.txt を実行する。

　（ディレクトリの移動は Sorbe のオプションでも可能です。）

(3) c:\test.lzh に含まれるファイルのリストを c:\test.txt に得たい時

　(a) sorbe.exe -ow c:\test.txt lha l c:\test.lzh を実行する。

　より詳しい情報については、動作の細部 を参考にして LHA.DLL 付属のドキュメントをご覧下さい。


UNLHA.DLL の利用例

　Sorbe を作成する時に対象とした UNLHA.DLL の version は 0.41 です。異なる version の UNLHA.DLL を使用する場合には 動作の細部 に記載されている関数の仕様に変更がないことを確認して下さい。

(1) 総論

　UNLHA.DLL では LHA.EXE と同様のコマンド・オプションが使えるようです。UNLHA.DLL で使えるコマンド・オプションについては、UNLHA.DLL 同封の command.txt に詳しい記述があります。

　UNLHA.DLL は LHA.DLL では行なえない、lh6 形式アーカイブ（LHA.EXE の version 2.60 以降で作成される）の解凍を目的として作成された DLL です。

　UNLHA.DLL は解凍のルーチンだけしか持っていません。圧縮関係のコマンドが指定されると LHA.DLL を呼び出して処理します。したがって、LHA.DLL がないと圧縮関係のコマンドは処理できません。

（詳しくは UNLHA.DLL 付属の unlha.txt を参照して下さい。）

(2) c:\test.lzh を解凍する時

　　(a) 解凍先のディレクトリに移動する。

　　(b) sorbe.exe unlha x c:\test.lzh を実行する。

(3) *.txt を c:\test.lzh に圧縮する時

　　UNLHA.DLL は圧縮を指定すると、LHA.DLL を探し、LHA.DLL の対応する関数を呼び出すことによって処理します。LHA.DLL を参照して下さい。

(4) c:\test.lzh のアーカイブ内容を c:\test.txt に得たい時

　　(a) sorbe.exe -ow c:\test.txt unlha l c:\test.lzh

　より詳しい情報については、動作の細部 を参考にして UNLHA.DLL 付属のドキュメントをご覧下さい。


動作の細部

(1) LHA.DLL を指定した時の動作の細部

(2) UNLHA.DLL を指定した時の動作の細部


LHA.DLL を指定した時の動作の細部

LHA.DLL が指定された時、Sorbe は以下のような処理を行います。

(1)

　LHA.DLL の version が 1.10 以上であることをチェック。

　1.10 未満の場合には続行するかどうかを確認する。

(2)

　LHA.DLL が動作中なのかどうかをチェック。

　動作中の場合にはメッセージを出して終了。

(3)

　非バックグラウンドモード、カーソル非表示モードに設定する。

(4)

　LHA を実行する。

　（LHA.DLL が結果を返すバッファ（DOS での標準出力に相当）のサイズは 10000 バイト。）

　Sorbe では「バックグラウンドで実行しない（＝CPU を占有する）」「カーソルを変更する」モードで LHA.DLL を実行します。

　バックグラウンドでの実行は、他のアプリとの関連で不具合が発生しやすいため、採りませんでした。

　詳しくは LHAD110A.lzh 同封の api.txt を参照して下さい。

参考

　Sorbe が呼び出している関数の名称は以下の通りです。

・LhaGetVersion

・LhaGetRunning

・LhaSetBackGroundMode

・LhaSetCursorMode

・Lha

version up によってこれらの関数の仕様が変更になった LHA.DLL と Sorbe を組み合わせて使うことはできません。


UNLHA.DLL を指定した時の動作の細部

UNLHA.DLL が指定された時、Sorbe は以下のような処理を行います。

(1)

　UNLHA.DLL の version が 0.16 以上であることをチェック。

　0.16 未満の場合には続行するかどうかを確認する。

(2)

　UNLHA.DLL が動作中なのかどうかをチェック。

　動作中の場合にはメッセージを出して終了。

(3)

　非バックグラウンドモード、カーソル非表示モードに設定する。

(4)

　UNLHA を実行する。

　（UNLHA.DLL が結果を返すバッファ（DOS での標準出力に相当）のサイズは 10000 バイト。）

　Sorbe では「バックグラウンドで実行しない（＝CPU を占有する）」「カーソルを変更する」モードで UNLHA.DLL を実行します。

　バックグラウンドでの実行は、他のアプリとの関連で不具合が発生しやすいため、採りませんでした。

　詳しくは ULHAD016.EXE 同封の api.txt を参照して下さい。

参考

　Sorbe が呼び出している関数の名称は以下の通りです。

・UnlhaGetVersion

・UnlhaGetRunning

・UnlhaSetBackGroundMode

・UnlhaSetCursorMode

・Unlha

version up によってこれらの関数の仕様が変更になった UNLHA.DLL と Sorbe を組み合わせて使うことはできません。


うまく動かない時の対処

■(1) 全く動作しない時 ---- DLL の置き場所 ----

　使用する DLL が windows の system ディレクトリに置いてありますか？

　アーカイブ用の DLL ファイルは、windows の system ディレクトリに置くのが標準的です。

■(2) 全く動作しない時 ---- ディレクトリ指定その１ ----

　Sorbe のディレクトリは正しく設定していますか？

　　sorbe.exe lha ...

と実行したとします。これが正しく動作するためには、sorbe.exe がカレントディレクトリか、パスの通ったディレクトリに置いてあることが必要です。

　こうしたことを意識しないためにも、sorbe.exe はフルパスで指定することをお薦めします。

　　c:...exe lha ...

という感じです。

■(3) 全く動作しない時 ---- ディレクトリ指定その２ ----

　　c:...exe lha a foo.lzh test.txt

と実行したとします。これが正しく動作するためには、カレントディレクトリに test.txt があることが必要です。また、foo.lzh もカレントディレクトリに作成されます。

　カレントディレクトリを意識したくないときは、扱うファイルをフルパスで指定してください。

　　c:...exe lha a c:...lzh c:...txt

という感じです。

■(4) 全く動作しない時 ---- 秀丸との組み合わせ ----

　例えば、秀丸のマクロの文字列定数で \ 記号を使う時は、"\\" と書く必要があります。したがって、例えば、

　　runsync2 "c:\win\tool\sorbe\sorbe.exe lha a ... ";

ではダメで、

　　runsync2 "c:\\win\\tool\\sorbe\\sorbe.exe lha a ... ";

と書く必要があります。

■(5) 全く動作しない時 ---- 秀Term との組み合わせ ----

　(4) でご説明した秀丸の場合と異なり、秀Term のスクリプトでは、ディレクトリ区切りの "\" をそのまま書きます。

　　runsync "c:\win\tool\sorbe\sorbe.exe lha x ...."

■(6) 動くには動くが・・・LHA.DLL の動作が DOS の lha と違う時

　LHA.DLL を使えば DOS の lha とほぼ同等のことが可能になると思いますが、Sorbe は当然のことながら、LHA.DLL の持つ制限を越えることは出来ません。

　95.06.12 現在入手可能な LHA.DLL（version 1.10、日付：93.02.14 サイズ：82864）は、lha（LHx という名だったらしい）の ver 2.02b を元にしているようです。したがって、DOS 版 lha の最新版と全く同じ動作をするわけではありません。この点は私にはどうしようもないです。

■(7) 他の DLL について

　LHA.DLL 以外の DLL に関しても (6) と同じような制限があります。


関連するファイルの取得方法

(1) 関連するファイルの登録名

　関連するファイルは以下の名前で登録されています。

　ファイルファインダーの Windows 部門（GO WINFF）からダウンロードできます。

・VBRJP200.DLL：VBRJP200.LZH

・LHA.DLL：LHDL110A.LZH

・UNLHA.DLL：ULHAD041.EXE

（特に UNLHA.DLL は頻繁に version up されています。「データ名」に "UNLHA" を指定して検索してみることをお薦めします。）

(2) 関連するファイルのインストール

　ダウンしてきたアーカイブファイルから .DLL のファイルを取り出し、Windows のシステムディレクトリに置きます。

　VBRJP200.DLL などの Microsoft Visual Basic のランタイム DLL やアーカイバの DLL は汎用性が高いので、Windows のシステムディレクトリ（普通の IBM PC ならば c:\windows\system）に置くのが標準的でお薦めです。


権利・転載許可など

・このアーカイブに含まれる全てのファイル・ソフトウェアは 山下 明良（NIFTY：GHF00566）の著作物です。

・このソフトは無料で使用できます。

・このソフトは無保証です。使用者の責任で使用して下さい。

　私は、このソフトの使用又は使用不能から生ずる障害・損害に関して、一切の責任を負いません。

・このアーカイブを転載する場合には、事前に相談して下さい。

　ただし、アクセスに際して通信料以外の費用を必要としないコンピュータ・ネットワーク、ＢＢＳなどへの転載は許可します。この場合、事後の連絡も不要です。

　NIFTY や internet の anonymous FTP サイトへの転載も許可します。この場合も事後の連絡は必要ありません。

・このアーカイブに同封されているドキュメントやヘルプには各種の製品やソフトウェアが記載されています。これらの製品・ソフトウェアについての権利は、それぞれの製品・ソフトウェアに付属のドキュメントやヘルプを参照して下さい。


履歴

version 1.10

　初公開 version。LHA.DLL ver1.10 に対応。

version 1.20

　UNLHA.DLL ver0.16 に対応。

　-d オプションを付けた。

　真鍋　隆彦 さんの要請により、-ow, -oa, -oc オプションを付加した。付けてみたら便利でした。真鍋さんに感謝。

version 1.21

　-ow, -oa オプションに関する手直しなど。

　UNLHA.DLL ver0.38 での動作を確認。


謝辞

　このヘルプはヘルプカード 94.11 版を使用して作成しました。

　便利なツールを作って頂いた、梅木 泰宏 さんに感謝します。

　LHA.DLL のお陰で Windows の利用が大変便利になりました。

　Rhizome Project の皆様に感謝します。

　UNLHA.DLL を作成した Ｍｉｃｃｏ さん（NIFTY：GCH03345）に感謝します。

　FWINDEV の会議室で Visual Basic についての質問に答えてくださった皆さんに感謝します。

　ここで挙げたソフトの、NIFTY での登録名は以下の通りです。

・ヘルプカード 94.11 版：HELPCARD.LZH

・LHA.DLL：LHDL110A.LZH

・UNLHA.DLL：ULHAD041.EXE