APPENDCOPY

使い方:   #n = dllfunc("APPENDCOPY",$s1,$s2);
説明: 指定ファイルの最後に別のファイルの内容を連結(追加コピー)します。
(テキストファイルの連結には APPENDCOPYTEXT 関数 を使用して下さい)
引数:
$s1 : 追加・変更されるファイルの名前
$s2 : 追加するファイルの名前
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
if (!dllfunc("APPENDCOPY","foo.dat","bar.dat")) {
    message "foo.dat に bar.dat の内容を連結できませんでした";
    ...
}


APPENDCOPYTEXT

使い方:   #n = dllfunc("APPENDCOPYTEXT",$s1,$s2);
説明: 指定ファイルの最後に別のファイルの内容を連結(追加コピー)します。 追加されるファイルの最後に [EOF](^Z, 0x1A) があった場合は それを削除してから連結します。
引数:
$s1 : 追加・変更されるファイルの名前
$s2 : 追加するファイルの名前
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
if (!dllfunc("APPENDCOPY","foo.txt","bar.txt")) {
    message "foo.txt に bar.txt の内容を連結できませんでした";
    ...
}


COPY

使い方:   #n = dllfunc("COPY",$s1,$s2);
説明: ファイルまたはフォルダをコピーします。
引数:
$s1 : (オプション文字列+)コピー元ファイル(フォルダ)名 (複数指定可)

書式は以下の通りです。
    "[options] file [file...]"

  • オプション文字列(options)
    /r : フォルダをその内容ごとコピーします。
    /i : 全てのファイル・フォルダについて 上書きの確認をします。 通常は読取専用またはシステムファイルの 上書きのみ確認します。
    /f : 確認せずに全て強制的に上書きします。
    /u : コピー先のタイムスタンプがコピー元より 古い場合のみ上書きします。
    /n : 戻り値として実際にコピーしたファイルの数を返し、 処理結果を FILEOPRESULT() で 取得できるようになります。
    /N : 上書きの確認を求めるダイアログに対して 自動で「いいえ」と答えたとして処理を進めます。 (上書きを一切したくない場合は /i オプションと 併用して下さい)

  • ファイルまたはフォルダ名(file)
    ファイル名またはフォルダ名を複数指定できます。 ワイルドカードも使用できます。 ただしフォルダを指定する場合は "/r" オプションを指定して下さい。
$s2 : コピー先ファイル(フォルダ)名
  • もし $s2 が存在しないか、または既存のファイル名の場合は $s1 の内容を $s2 を別名としてコピーします。
  • もし $s2 が既存のフォルダ名の場合は $s1 を $s2 の中に 同名でコピーします。
返り値: #n が 1 なら成功、0 なら失敗しています。
(/n を指定した場合を除く)
例:
//  別名コピー
if (!dllfunc("COPY","index.html","index.orig")) {
    message "ファイルのコピーに失敗しました";
    ...
}
//  別フォルダへファイルをコピー
if (!dllfunc("COPY","*.html *.txt","A:\\")) {
    message "ファイルのコピーに失敗しました";
    ...
}
//  別フォルダへフォルダ・ファイルをコピー
if (!dllfunc("COPY",
            "/ru 'C:\\Program Files\\*.*'",
            "G:\\Backup\\Program Files"
        )
    ) {
    message "プログラムフォルダのバックアップに失敗しました";
    ...
}


MOVE

使い方:   #n = dllfunc("MOVE",$s1,$s2);
説明: ファイルまたはフォルダを移動(または名前を変更)します。
引数:
$s1 : (オプション文字列+)移動元ファイル(フォルダ)名 (複数指定可)

書式は以下の通りです。
    "[options] file [file...]"

  • オプション文字列(options)
    /i : 全てのファイル・フォルダについて 上書きの確認をします。 通常は読取専用またはシステムファイルの 上書きのみ確認します。
    /f : 確認せずに全て強制的に上書きします。
    /u : コピー先のタイムスタンプがコピー元より 古い場合のみ上書きします。
    /n : 戻り値として実際に移動したファイルの数を返し、 処理結果を FILEOPRESULT() で 取得できるようになります。
    /N : 上書きの確認を求めるダイアログに対して 自動で「いいえ」と答えたとして処理を進めます。 (上書きを一切したくない場合は /i オプションと 併用して下さい)

  • ファイルまたはフォルダ名(file)
    ファイル名またはフォルダ名を複数指定できます。 ワイルドカードも使用できます。
$s2 : 移動先ファイル(フォルダ)名
  • $s2 が存在しない場合は $s1 を $s2 に名前を変えて 移動します。
  • $s2 が既存のファイル名の場合は $s1 を $s2 に 上書き移動します。
  • もし $s2 が既存のフォルダ名の場合は $s1 を $s2 の中に 同名で移動します。
返り値: #n が 1 なら成功、0 なら失敗しています。
(/n を指定した場合を除く)
例:
//  名前の変更
if (!dllfunc("MOVE","index.html","index.orig")) {
    message "ファイルの名前の変更に失敗しました";
    ...
}
//  別フォルダへファイル・フォルダを移動
if (!dllfunc("MOVE","*.*","A:\\")) {
    message "ファイルの移動に失敗しました";
    ...
}


REMOVE

使い方:   #n = dllfunc("REMOVE",$s1);
説明: ファイルまたはフォルダを削除します。
引数:
$s1 : (オプション文字列+)削除するファイル(フォルダ)名 (複数指定可)
書式は以下の通りです。
    "[options] file [file...]"

  • オプション文字列(options)
    /r : フォルダをその内容ごと削除します。
    /i : 全てのファイル・フォルダについて 削除の確認をします。 通常は読取専用またはシステムファイルの 削除のみ確認します。
    /f : 確認せずに全て強制的に削除します。
    /g : ファイルを実際に削除する代わりに ごみ箱へ移動します。
    /n : 戻り値として実際に削除したファイルの数を返し、 処理結果を FILEOPRESULT() で 取得できるようになります。
    /N : 削除の確認を求めるダイアログに対して 自動で「いいえ」と答えたとして処理を進めます。

  • ファイルまたはフォルダ名(file)
    ファイル名またはフォルダ名を複数指定できます。 ワイルドカードも使用できます。 ただしフォルダを指定する場合は "/r" オプションを指定して下さい。
返り値: #n が 1 なら成功、0 なら失敗しています。
(/n を指定した場合を除く)
例:
if (!dllfunc("REMOVE","/f *.bak")) {
    message "バックアップファイルの削除に失敗しました";
    ...
}


SETATTRIBUTE

使い方:   #n = dllfunc("SETATTRIBUTE", $s1);
説明: 指定されたファイル・フォルダの属性を変更します。
引数:
$s1 : (オプション文字列+)属性指定子+変更するファイル(フォルダ)名 (複数指定可)

書式は以下の通りです。
    "[options] modes file [file...]"

  • オプション文字列(options)
    /R : サブフォルダ内の全てのファイル・フォルダの 属性を変更します。
    /n : 戻り値として実際に属性を変更した数を返し、 処理結果を FILEOPRESULT() で 取得できるようになります。

  • 属性指定子(modes)
    書式は以下の通りです。

    "(+|-|=)flags[(+|-|=)flags...]"

    + 現在の属性に flags の属性を加えます。
    - 現在の属性から flags の属性を除きます。
    = 現在の属性を flags の属性に置き換えます。
    flags 以下の属性を複数指定できます。
    a アーカイブ属性
    r 読取専用属性
    h 隠し属性
    s システム属性

  • ファイル・フォルダ名(file)
    ファイル・フォルダ名を複数指定できます。 ワイルドカードも指定できます。
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
//  読取専用・隠し・システムファイルに変更
#r = dllfunc("SETATTRIBUTE","=rhs C:\\boot.ini");
//  現在の属性に読取専用属性を加え、アーカイブ属性と隠し属性を除く
#r = dllfunc("SETATTRIBUTE","/R +r-ah *.*");


TOUCH

使い方:   #n = dllfunc("TOUCH", $s1);
説明: 指定されたファイルのタイムスタンプを(現在の時刻に)変更します。
引数:
$s1 : (オプション文字列+)変更するファイル(フォルダ)名 (複数指定可)

書式は以下の通りです。
    "[options] file [file...]"

  • オプション文字列(options)
    /a : 最終アクセス日付・時刻のみを変更します。
    /c : 存在するファイルのみ変更します。(下記参照)
    /m : 最終更新日付・時刻のみを変更します。
    /R : フォルダが指定された場合に、 その下にあるファイル・サブフォルダも更新します。
    /r reffile : 現在の日付・時刻の代わりに reffile のタイムスタンプを使用します。
    /t timestamp : 現在の日付・時刻の代わりに指定した日付・時刻を 使用します。 指定(timestamp)は "[YY]YY/MM/DD#hh:mm:ss" の形式で指定します。 (西暦が2桁の場合は 1900 年からの経過年として 処理します。)
    /n : 戻り値として実際にタイムスタンプを変更した ファイル・フォルダの数を返し、 処理結果を FILEOPRESULT() で 取得できるようになります。

  • ファイル・フォルダ名(file)
    ファイル・フォルダ名を複数指定できます。 ワイルドカードも指定できます。 指定されたファイルがなければ サイズ 0 のファイルを作成します ("/c" オプションを指定しない場合)。
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
//  現在時刻のサイズ0のファイルを作成
#r = dllfunc("TOUCH","newfile.txt");
//  既存ファイルのタイムスタンプを foo.txt に揃える
#r = dllfunc("TOUCH","/r foo.txt *.*");
//  フォルダ内のファイル・フォルダを指定日付・時刻に変更する
#r = dllfunc("TOUCH","/R /t 2000/01/01#00:00:00 dir1");


FILEOPRESULT

使い方:   $s = dllfuncstr("FILEOPRESULT");
説明: "/n" オプションを受け付けるファイル操作系関数 (COPY, MOVE, REMOVE, MKDIR, RMDIR, SETATTRIBUTE, TOUCH) の処理結果を受け取ります。
引数: (なし)
返り値: 1回の呼出し毎に直前のファイル操作系関数の処理結果が1つ返ります。 結果が存在しない時は "" を返します。
ここで、処理結果の書式は以下の通りです。
    "result|filename[|filename2]"

  • 処理の結果コード(result)
    0:成功
    1:失敗
    2:("/i" オプション指定時のみ)ユーザーが「いいえ」または「キャンセル」を選択

  • 処理対象のファイル・フォルダ名(filename)
    ※実際に存在する場合はフルパス名、 そうでなければ引数で指定した名前になります。

  • (COPY, MOVE のみ)コピー・移動先の ファイル・フォルダ名(filename2)
    ※実際に存在する場合はフルパス名、 そうでなければ引数で指定した名前になります。
例:
// ユーザーに上書き確認をしつつ、ファイル・フォルダをコピー
#r = dllfunc("COPY", "/rin 'C:\\My Documents\\*.*'", "D:\\backup");
while (1) {
    $res = dllfuncstr("FILEOPRESULT");
    if ($res == "") break;
    // GETTOKEN() により結果文字列を分割
    $retcode = dllfuncstr("GETTOKEN", $res, "|"); // 結果コードの取得
    $srcfile = dllfuncstr("GETTOKEN", "", "|");   // コピー元ファイル名
    $dstfile = dllfuncstr("GETTOKEN", "", "|");   // コピー先ファイル名
    if ($retcode == "0") {
        // 処理に成功
        insert $srcfile + " -> " + $dstfile + " : OK\n";
    } else if ($retcode == "1") {
        // 処理に失敗
        insert $srcfile + " -> " + $dstfile + " : NG\n";
    } else if ($retcode == "2") {
        // ユーザーによりキャンセル
        insert $srcfile + " -> " + $dstfile + " : キャンセル\n";
    }
}
...


GETCURDIR

使い方:   $s = dllfuncstr("GETCURDIR");
説明: カレントフォルダ名を取得します。
引数: (なし)
返り値: カレントフォルダ名が返ります。 なお、ルートフォルダの場合は最後が円記号で終了します(例:"A:\")。 それ以外は最後に円記号はつきません。
例: (省略)


SETCURDIR

使い方:   #n = dllfunc("SETCURDIR",$s1);
説明: カレントフォルダを移動します。
引数:
$s1 : フォルダ名 (UNC パスは指定できません)
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
#r = dllfunc("SETCURDIR","C:\\Windows");
if (!dllfunc("COPY","win.ini","win.bak")) {
    message "win.ini のバックアップコピーに失敗しました";
    ...
}


MKDIR

使い方:   #n = dllfunc("MKDIR",$s1);
説明: 指定されたフォルダを作成します。
引数:
$s1 : (オプション文字列+)作成するフォルダ名 (複数指定可)

書式は以下の通りです。
    "[options] dir [dir...]"

  • オプション文字列(options)
    /p : (もし存在しなければ) 指定された全てのサブフォルダを作成します。 このオプションを付けない場合、 "C:\\dir1\\dir2" という指定で dir1 が存在しない場合は関数が失敗します。
    /n : 戻り値として実際に作成したフォルダの数を返し、 処理結果を FILEOPRESULT() で 取得できるようになります。

  • フォルダ名(dir)
    フォルダ名を複数指定できます。
返り値: #n が 1 なら成功、0 なら失敗しています。
("/n" オプションを指定した場合を除く)
例:
if (!dllfunc("MKDIR","/p .\\newdir\\subdir")) {
    message "フォルダの作成に失敗しました";
    ...
}


RMDIR

使い方:   #n = dllfunc("RMDIR",$s1);
説明: 指定された(空の)フォルダを削除します。
引数:
$s1 : (オプション文字列+)削除するフォルダ名 (複数指定可)

書式は以下の通りです。
    "[options] dir [dir...]"

  • オプション文字列(options)
    /i : 全てのフォルダについて削除の確認をします。 通常は読取専用またはシステムフォルダの削除のみ 確認します。
    /f : 確認せずにすべて強制的に削除します。
    /n : 戻り値として実際に削除したフォルダの数を返し、 処理結果を FILEOPRESULT() で 取得できるようになります。
    /N : 削除の確認を求めるダイアログに対して 自動で「いいえ」と答えたとして処理を進めます。

  • フォルダ名(dir)
    フォルダ名を複数指定できます。 なお、フォルダの中にファイルまたはサブフォルダがある 場合この関数は失敗します。 (REMOVE 関数 も参照して下さい)
返り値: #n が 1 なら成功、0 なら失敗しています。
("/n" オプションを指定した場合を除く)
例:
if (!dllfunc("RMDIR","/f *.*")) {
    message "フォルダの削除に失敗しました";
    ...
}


ENUMFILE

使い方:   #n = dllfunc("ENUMFILE",$s1);
説明: (ワイルドカードで)指定されたファイルを検索します。 なお、実際に見つかったファイル名を取得するには FINDNEXT 関数 を使用します。
引数:
$s1 : (オプション文字列+)ワイルドカード指定

書式は以下の通りです。
    "[options] wildcard_specs"

  • オプション文字列(options)
    /o order_spec : ファイル・フォルダ名のソートの 優先順位を指定します。 order_spec には 以下の4つの文字を 優先度の高い順に並べたものを指定します。
    n : ファイル名でソート
    e : 拡張子(ファイルの種類)でソート
    t : タイムスタンプでソート
    s : ファイルサイズでソート

    このオプションによる指定をしなかった場合は、 "-o nets" を指定した場合と同じ結果になります。
    なお、n が最初に来る指定をした場合は デフォルトの動作と同じになることに注意して下さい。 同一のフォルダに同じ名前のファイルは 存在しないため、 残りのソート指定は実際には使われないからです。
    /r : ソート順序を逆順にします。

  • ワイルドカード指定(wildcard_specs)
    以下の方法のいずれかで指定して下さい。
    • folder_name\spec
    • folder_name specs
    ここで、
    folder_name は検索対象のフォルダ名、
    spec は1つのワイルドカード指定、
    specs は複数のワイルドカード指定を セミコロンまたは空白で区切ったもの
    です。
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
// カレントフォルダの *.bak ファイルを検索
#r = dllfunc("ENUMFILE","*.bak");
while (1) {
    $file = dllfuncstr("FINDNEXT");
    if ($file == "") break;
    #r = dllfunc("REMOVE","/i '" + $file + "'");
}
// カレントフォルダ(.)の *.bat, *.cmd, *.com, *.exe ファイルを検索し、
// タイムスタンプ、拡張子(ファイルの種類)、ファイルサイズ、名前、
// という優先順位でソートしたものを逆順に取得
#r = dllfunc("ENUMFILE","/r /o tesn . *.bat;*.cmd *.com *.exe");
while (1) {
    $file = dllfuncstr("FINDNEXT");
    if ($file == "") break;
    message $file;
}


ENUMDIR

使い方:   #n = dllfunc("ENUMDIR",$s1);
説明: (ワイルドカードで)指定されたフォルダを検索します。 実際に見つかったフォルダ名を取得するには FINDNEXT 関数 を使用します。 なお、現在のフォルダを表す "." と、 親フォルダを表す ".." は必ず返されるので注意して下さい。
引数:
$s1 : (オプション文字列+)ワイルドカード指定

書式は以下の通りです。
    "[options] wildcard_specs"

  • オプション文字列(options)
    /o order_spec : ファイル・フォルダ名のソートの 優先順位を指定します。
    具体的な指定方法は ENUMFILE 関数 の説明を 参照して下さい。
    /r : ソート順序を逆順にします。 但し、"." と ".." は最初に返されるので 注意して下さい。

  • ワイルドカード指定(wildcard_specs)
    具体的な指定方法は ENUMFILE 関数 の説明を 参照して下さい。
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
// Windows フォルダのサブフォルダを検索
#r = dllfunc("ENUMDIR",windir + "\\*.*");
while (1) {
    $dir = dllfuncstr("FINDNEXT");
    if ($dir == "") break;
    else if ($dir == "." || $dir == "..") continue;
	message $dir;
}


ENUMPATH

使い方:   #n = dllfunc("ENUMPATH",$s1);
説明: (ワイルドカードで)指定されたファイルを サブフォルダの中も含めて再帰的に検索します。 なお、実際に見つかったファイル名を取得するには FINDNEXT 関数 を使用します。
引数:
$s1 : (オプション文字列+)ワイルドカード指定

書式は以下の通りです。
    "[options] wildcard_specs"

  • オプション文字列(options)
    /o order_spec : ファイル・フォルダ名のソートの 優先順位を指定します。
    具体的な指定方法は ENUMFILE 関数 の説明を 参照して下さい。
    /r : 通常はファイル→フォルダの順に検索しますが、 これを指定した場合はフォルダ→ファイルの順に 検索します。 また、/o によるソート指定も逆順になります。
    /f : 通常は(全ての)サブフォルダ名を表示しますが、 これを指定した場合は(サブフォルダ内部も含めて) ファイルのみを検索します。

  • ワイルドカード指定(wildcard_specs)
    具体的な指定方法は ENUMFILE 関数 の説明を 参照して下さい。
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
// My Documents フォルダとそのサブフォルダ内にある *.bak ファイルを全て削除
#r = dllfunc("ENUMPATH","/f 'C:\\My Documents\\*.bak'");
while (1) {
    $file = dllfuncstr("FINDNEXT");
    if ($file == "") break;
    #r = dllfunc("REMOVE","/i 'C:\\My Documents\\" + $file + "'");
}


FINDNEXT

使い方:   $s = dllfuncstr("FINDNEXT");
説明: ENUMPATH, ENUMFILE, ENUMDIR 関数による ファイル(フォルダ)の検索の結果を受け取ります。
引数: (なし)
返り値: 1回の呼出し毎に1つのファイル(フォルダ)名を返します。 もうファイルが存在しない時は "" を返します。 なお、ENUMPATH 関数 の場合は 検索を開始したフォルダからの相対パスが返されます。
例: (ENUMPATH, ENUMFILE, ENUMDIR 関数の例を参照して下さい)


ISREADONLY

使い方:   $s = dllfuncstr("ISREADONLY",$s1);
説明: ファイルまたはフォルダが書き込み禁止かどうかを調べます。 なお、FINDNEXT 関数 の実行後に 引数なし($s1 = "")で呼び出すと、 FINDNEXT で取得したファイルについての情報を返します。
引数:
$s1 : ファイル(フォルダ)名 (または "")
返り値: 書き込み禁止の場合は "!" を、そうでなければ "" を返します。 なお、ファイルが見つからなかった場合も "" を返します。
例:
if (!dllfunc("ENUMFILE","*.txt")) goto END;
while (1) {
    $file = dllfuncstr("FINDNEXT");
    if ($file == "") break;
    else if (dllfuncstr("ISREADONLY","") == "!") {
        message $file + " は読取専用ファイルです";
    }
}
...


SIZEOF

使い方:   $s = dllfuncstr("SIZEOF",$s1);
説明: ファイルのサイズを(文字列で)返します。 なお、FINDNEXT 関数 の実行後に 引数なし($s1 = "")で呼び出すと、 FINDNEXT で取得したファイルについての情報を返します。
引数:
$s1 : ファイル(フォルダ)名 (または "")
返り値: サイズを文字列で表したものが返ります。 ファイルが見つからなかった場合は "" を返します。
例:
if (!dllfunc("ENUMFILE","*.txt")) goto END;
while (1) {
    $file = dllfuncstr("FINDNEXT");
    if ($file == "") break;
    message $file + " のファイルサイズは " + 
            dllfuncstr("SIZEOF","") + " です";
}
...


TIMESTAMPOF

使い方:   $s = dllfuncstr("TIMESTAMPOF",$s1);
説明: 指定ファイルのタイムスタンプを返します。 なお、FINDNEXT 関数 の実行後に ファイル名なしで呼び出すと、 FINDNEXT で取得したファイルについての情報を返します。
引数:
$s1 : (オプション文字列+)ファイル(フォルダ)名

書式は以下の通りです。
    "[options] file"

  • オプション文字列(options)
    /l : タイムスタンプの西暦を4桁にしたものを返します。

  • ファイル(フォルダ)名(file)
    ファイルまたはフォルダ名
返り値: タイムスタンプを "[YY]YY/MM/DD HH:MM:SS" の形式で返します。 ファイルが見つからなかった場合は "" を返します。
例:
if (!dllfunc("ENUMFILE","*.txt")) goto END;
while (1) {
    $file = dllfuncstr("FINDNEXT");
    if ($file == "") break;
    message $file + " のタイムスタンプは " + 
            dllfuncstr("TIMESTAMPOF","/l") + " です";
}
...


TIMECOUNTOF

使い方:   $s = dllfuncstr("TIMECOUNTOF",$s1);
説明: 指定ファイルのタイムスタンプをある整数値(を文字列)で返します。 なお、FINDNEXT 関数 の実行後に 引数なし($s1 = "")で呼び出すと、 FINDNEXT で取得したファイルについての情報を返します。
引数:
$s1 : ファイル(フォルダ)名 (または "")
返り値: タイムスタンプを世界標準時(UTC)に変換して32ビットの 整数で表したものを文字列として返します。 ここで、各ビットには以下のように日付・時刻が割り当てられています。
    0-4ビット  2秒刻みの秒
    5-10ビット 分(0-59)
    11-15ビット 24時間形式での時(0-23)
    16-20ビット 日(1-31)
    21-24ビット 月(1-12)
    25-31ビット 1980 年からの経過年(+1980 で実際の年になる)
ファイルが見つからなかった場合は "" を返します。
ややこしい定義ですが、 要するにタイムスタンプが新しければこの整数値は より大きくなるようになっています。
例:
$ftm1 = dllfuncstr("TIMECOUNTOF","file1.txt");
$ftm2 = dllfuncstr("TIMECOUNTOF","file2.txt");
if (val($ftm1) >= val($ftm2))
    message "file1.txt は file2.txt より新しい(か同時刻の)ファイルです";
else
    message "file1.txt は file2.txt より古いファイルです";
...


ATTRIBUTEOF

使い方:   $s = dllfuncstr("ATTRIBUTEOF",$s1);
説明: 指定ファイル・フォルダの属性を表す文字列を返します。 なお、FINDNEXT 関数 の実行後に 引数なし($s1 = "")で呼び出すと、 FINDNEXT で取得したファイルについての情報を返します。
引数:
$s1 : ファイル(フォルダ)名 (または "")
返り値: 以下の文字の組み合わせが返ります。
    a アーカイブ属性
    r 読取専用属性
    h 隠し属性
    s システム属性
    d フォルダ
ファイルがないか属性がない場合は "" を返します。
例:
if (!dllfunc("ENUMPATH","*.*")) goto END;
while (1) {
    $file = dllfuncstr("FINDNEXT");
    if ($file == "") break;
    else if (strstr(dllfuncstr("ATTRIBUTEOF",""),"d") != -1) {
        message $file + " はフォルダです";
    }
}
...


GETDRIVES

使い方:   $s = dllfuncstr("GETDRIVES");
説明: 現在利用可能なディスクドライブを取得します。
引数: (なし)
返り値: "1" または "0" からなる 32 文字の文字列で返ってきます。 例えば、以下のような感じです。
    "10110000000000000000000000000000"
左から順に A, B, C ドライブに対応しています。 "1" の場合は利用可能、"0" の場合は利用不可能です。 上記の例の場合、A と C と D ドライブが利用可能です。 27 文字目(ドライブ Z)以降は意味がありません。
例: (省略)


GETLONGNAME

使い方:   $s = dllfuncstr("GETLONGNAME",$s1);
説明: 指定ファイルまたはフォルダのロングファイル名をフルパスで返します。
引数:
$s1 : ファイル(フォルダ)名
返り値: ロングファイルネームに変換された フルパスのファイル(フォルダ)名が返ります。 パスの最後のファイルまたはフォルダ名は 実際に存在しないものでも構いませんが、 途中のサブフォルダが存在しない場合は "" を返します。
例:
$file = "C:\\PROGRA~1";
message $file + " のロングファイル名は " + 
        dllfuncstr("GETLONGNAME",$file) + " です";
...


RUN / MAXRUN / ICONRUN / HIDERUN

使い方:   #n = dllfunc("RUN",$s1);
説明: $s1 をコマンドとみなしてプログラムを実行します。 それぞれ 普通に (RUN)、最大化状態で (MAXRUN)、 アイコン化状態で (ICONRUN)、不可視状態で (HIDERUN) 実行します。
引数:
$s1 : コマンド名、及びオプションを指定します。
なお、ファイルがアプリケーションに関連付けられている時は、 そのファイル名だけを指定すれば 関連付けられたアプリケーションでそのファイルを開きます。
返り値: #n が 1 なら成功、0 なら失敗しています。
例:
// foo.txt を最大化状態で開く
if (!dllfunc("MAXRUN", hidemarudir + "\\hidemaru.exe foo.txt")) {
    message "foo.txt を開けませんでした";
    ...
}
// 通常使うブラウザで bar.html を開く
if (!dllfunc("RUN", "bar.html")) {
    message "bar.html を開けませんでした";
    ...
}