2010年04月14日


Lhasa をオンライン解凍ツールとして使う

その名の通り解凍ソフトですが、軽量なので WEB に保存しておいて
スクリプトでダウンロードして、コマンドラインを使ってファイル
を解凍するという使い方ができます。

▼ 以下のページの一番下にあります。
Susieのだうんろーど

▼ ソフトウェアとしての紹介は窓の杜を参照しましょう
窓の杜 - Lhasa

【+lhaca 用】 WEB WSH インストーラ
特記

自己解凍書庫ですが、拡張子を .lzh にして解凍して Lhasa.exe を手に入れる事もできます
開発は、2004/08/03に終了しているもよう。

再配布

通信と個人的な手渡しによる転載、流通に関しては内容の改変等が無い限り制限はありません。

著作権

このプログラムのLHAの解凍ルーティンは吉崎栄泰さんのソースを元にしんきさんが作られた
「.LZH / .LZS  アクセスライブラリ  Ver.0.98c」が元。
ZIPの解凍ルーティンの一部(inflate,explode)は
Info-ZIP group の公開しているコードを含んでいます。
Info-ZIP group のオリジナルのソースコードは無料で配布されています。
http://www.info-zip.org/pub/infozip/
英語版ドキュメントは小沢仁さんが作成。
作者 : 竹村嘉人 (たけちん)

Vector

Lhasa32の詳細情報

オンライン解凍ツールとしての使い方

以下は、Terapad のインストールに使っている例です
<SCRIPT language=VBScript>
' ***********************************************************
' 処理開始
' ***********************************************************
sId = "tpad093"		' 対象アーカイブ
sPg = "TeraPad.exe"	' 対象アプリケーション

' ***********************************************************
' ダウンロードする URL
' ***********************************************************
strDownloadPlace = "http://www5f.biglobe.ne.jp/~t-susumu/dl/tpad/tpad093.zip"

' ***********************************************************
' ダウンロード : 対象アーカイブ
' ***********************************************************
strLocalFile = TempDir & "\" & sId & ".zip"
ret = HTTPDownload( strDownloadPlace, strLocalFile )
if not ret then
	Wscript.Echo ErrorMessage
	Wscript.Quit
end if

' ***********************************************************
' ダウンロード成功 : 対象アーカイブ
' ***********************************************************
Wscript.Echo strDownloadPlace & " をダウンロードしました" & vbCrLf & strLocalFile

' ***********************************************************
' 解凍ソフトの一時ダウンロード
' ***********************************************************
strDownloadPlace = "http://winofsql.jp/download/Lhasa.exe"

' ***********************************************************
' ダウンロード : 解凍ソフト
' ***********************************************************
ret = HTTPDownload( strDownloadPlace, TempDir & "\Lhasa.exe" )
if not ret then
	Wscript.Echo ErrorMessage
	Wscript.Quit
end if

' ***********************************************************
' ダウンロード成功 : 解凍ソフト
' ***********************************************************
Wscript.Echo strDownloadPlace & " をダウンロードしました"

' ***********************************************************
' 対象アーカイブをテンポラリディレクトリに解凍
' ***********************************************************
strCommand = Dd( TempDir & "\Lhasa.exe" ) & " -d- -a -q -f -e- " & Dd(TempDir & "\" & sId & ".zip")
RunSync(strCommand)

' ***********************************************************
' ファイルシステムオブジェクトの取得
' ***********************************************************
GetFso

' ***********************************************************
' インストール先の設定
' ***********************************************************
strInstallBasePath = Left( ProgDir(), 2 )
strInstallPath1 = strInstallBasePath & "\laylaClass"
if not Fso.FolderExists( strInstallPath1 ) then
	on error resume next
	Call Fso.CreateFolder( strInstallPath1 )
	on error goto 0
end if
' ***********************************************************
' 解凍ディレクトリの移動
' ***********************************************************
Call Fso.CopyFolder( TempDir & "\" & sId, strInstallPath1 & "\" & sId, True )
Call Fso.DeleteFolder( TempDir & "\" & sId )

' ***********************************************************
' ダウンロードファイルの削除
' ***********************************************************
Call Fso.DeleteFile( TempDir & "\" & sId & ".zip", True )
Call Fso.DeleteFile( TempDir & "\Lhasa.exe", True )

' ***********************************************************
' TeraPad.ini 出力
' ***********************************************************
on error resume next
Fso.CreateFolder(strInstallPath1 & "\" & sId & "\usr")
Fso.CreateFolder(strInstallPath1 & "\" & sId & "\usr\" & GetUser )
on error goto 0
TargetPath = strInstallPath1 & "\" & sId & "\usr\" & GetUser & "\TeraPad.ini"
strText = GetInline( "TeraPad_ini" )
Call PutTextFile( TargetPath, strText )

' ***********************************************************
' ショートカット作成
' ***********************************************************
if OkCancel("デスクトップとSendToにショートカットを作成しますか?   ") then

	Set obj = WshShell.CreateShortcut( DesktopDir & "\" & sId & ".lnk")
	obj.TargetPath = Dd( strInstallPath1 & "\" & sId & "\" & sPg )
	obj.WindowStyle = 1
	obj.IconLocation = strInstallPath1 & "\" & sId & "\" & sPg
	obj.Description = "フリーのシンプルなテキストエディタ"
	obj.WorkingDirectory = strInstallPath1 & "\" & sId
	obj.Save
	Call Fso.CopyFile( DesktopDir & "\" & sId & ".lnk", SendtoDir & "\!TeraPad.lnk", True )
	Wscript.Echo "デスクトップとSendToにショートカットを作成しました"

end if

MsgOk( "処理が終了しました   " )

</SCRIPT>

HTTPDownload の内容です
VBScript : 1メガバイト以下のWEB上のバイナリのダウンロード


posted by at 14:33 | 運用 | このブログの読者になる | 更新情報をチェックする