圧縮ファイルを操作しよう
Ver 1.1 今後ほかの命令、オプションについてもサポート予定です。

New 解凍・圧縮状況ウィンドウが表示されるようになりました!!

<多機能圧縮ソフトを作ろう>

宣 言

(Private) Declare Function Unlha Lib "UNLHA32.DLL" (ByVal Callhwnd As Long, ByVal LHACommand As String, ByVal RetBuff As String, ByVal RetBuffSize As Long) As Long

※Privateは必要に応じて削除またはPublicに変更

引 数 説 明

Callhwnd

Long

Unlhaを呼び出すアプリケーションのウィンドウハンドル(例:Form1.hwnd)

LHACommand

String

Unlhaに渡すコマンドの文字列。DOS版LHAと同様のものが指定可能。

RetBuff

String

Unlhaが結果を返すための変数

RetBuffSize

Long

RetString$の大きさ(Dim RetStr as string*255の「255」の部分が大きさとなる)

LHACommandに関する追加説明

CallCommand$に次のコードを指定することで、次の機能が実現できます。

コード

機能

使用頻度

a c:\file.lzh c:\file\*.*

c:\file\のすべてのファイルをc:\file.lzhという名前で圧縮する

A

e c:\file.lzh c:\file\

c:\file.lzhというファイルをc:\fileディレクトリーに解凍する

A

まだまだオプションや命令はたくさんあるのですが、数が多すぎて説明できません。ここで説明する数は増やしていくつもりですが、詳しく知りたい方はUnlhaに付属のテキストファイルを参照してください。

サ ン プ ル プ ロ グ ラ ム


ファイルを圧縮または解凍するプログラムです。VBを起動し次のサンプルコードを張りつけて実行してください。なお、圧縮には「c:\file」というファイルのあるディレクトリーが必要になり、解凍には「c:\file.lzh」というLZHファイル及び「c:\file」というディレクトリーが必要になります。あらかじめ用意しておいてください。フォームをクリックすると圧縮 or 解凍が開始されます。

動作確認:Visual Basic 5.0(Visual Basic 4.0でも問題なく動作するはずです),Windows98

Option Explicit
Private Declare Function Unlha Lib "UNLHA32.DLL" (ByVal Callhwnd As Long, ByVal LHACommand As String, ByVal RetBuff As String, ByVal RetBuffSize As Long) As Long

Private Sub Form_Click()
Dim Ret As String * 255
Dim SendStr As String

SendStr = "a c:\file\file.lzh c:\file\*.*" 'c:\file\ディレクトリーのファイルを圧縮する場合
'SendStr = "e c:\file.lzh c:\file\" 'c:\file.lzhというファイルを解凍したい場合は"'"をとってください

Unlha Form1.hWnd, SendStr, Ret, 255 'UnLHA実行
End Sub

<更新履歴>
Ver 1.0 とりあえず公開
Ver 1.1 Ver 1.0のバグフィックス


トップに戻る
Visual Basicワンポイントテクニック目次に戻る

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル