V2.33アップロードしましたNo.10823
秀まるお2 さん 03/01/21 14:16
 
 V2.33をアップロードしました。

  http://hide.maruo.co.jp/software/bin/tk233.exe

 ヘルプファイルをコンパイル忘れまして、いくつかtkinfo.dllに追加した関数
が説明不足になっています。ここで説明してしまいます。

    Bypass_DeleteFile
        WindowsAPIのDeleteFile関数。パラメータ1にファイル名を指定する。
        削除に成功すると0以外を返す。
        失敗すると0を返す。

    Bypass_GetLastError
        WindowsAPIのGetLastError。
        直前のWindowsAPI呼び出しで発生したエラーのコードを返す。

    Bypass_RemoveDirectory
        パラメータ1にフォルダのパス名を指定する。
        成功すると0以外を返す。

    Bypass_CreateDirectory
        パラメータ1に作成したいフォルダ名を指定する。
        成功すると0以外を返す。

    Bypass_GetFileSize
        WindowsAPIのGetFileSizeと少々違う。
        パラメータ1にファイル名を指定すると、サイズが返る。
        エラーの場合は-1を返す。

    Bypass_SetFileAttributes
        パラメータ1にファイル名、パラメータ2に属性を指定する。
        属性の例:  0x00000020 ... 普通のファイル
                    0x00000021 ... 上書き禁止ファイル
    Bypass_GetFileAttributes
        パラメータ1にファイル名を指定する。返り値は属性。
        エラーの場合は-1を返す。

 あと、Unlha32.dllを呼び出す関数も追加しています。近々、添付ファイル圧
縮マクロの改良バージョンをアップロードします。

[ ]
RE:10823 V2.33アップロードしましたNo.10824
秀まるお2 さん 03/01/21 17:13
 
 マクロヘルプのミスが1つ見つかりました。(というか、メールで間違い報告
が届いた)

 Unlha32.dll呼び出し関数のヘルプが参照できませんでした。内容は以下の通
りです。

-------------------------------------------
Unlha32.DLL呼び出し関数(TKInfo.dll)

 LZHファイルを作成したり解凍したりするために、Unlha32.dllを呼び出す関数
を用意しました。

LoadUnlhaDll  ... 返り値は数値、パラメータ無し。
     Unlha32.dllをロードします。成功すると1、失敗すると0を返します。
FreeUnlhaDll  ... 返り値もパラメータも無し。
     Unlha32.dllを解放します。
Unlha   ... 返り値は数値、パラメータ1が親ウィンドウハンドル、
            パラメータ2がコマンドライン。
     Unlha関数を呼び出します。パラメータ1にはhidemaruhandle(0)を渡し、
     パラメータ2にlha用のコマンドラインをそのまま渡してください。
     返り値は、Unlha32.dllのUnlha関数そのままです。詳しくはそちらを参照
     ください。
GetUnlhaResult  ... 返り値は文字列、パラメータ無し。
     Unlha関数を呼び出した結果文字列を返します。

 一般には、LoadUnlhaDll関数を呼んでからUnlha関数を呼び、必要に応じて
GetUnlhaResult関数で結果文字列を取得して、最後にFreeUnlhaDll関数でDLLを
解放すればいいです。


    if( ! dllfunc("LoadUnlhaDll") ) {
        message "Unlha32.dllがインストールされていません。";
        endmacro;
    }
    #n = dllfunc("Unlha", hidemaruhandle(0), "a \"c:\\test.lzh\" abc.txt
    xyz.txt");
    $s = dllfuncstr("GetUnlhaResult");
    #n = dllfunc("FreeUnlhaDll");
    message $s;

[ ]