FileSelectFile
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
FileSelectFile[編集]
ファイル選択ダイアログを表示。
FileSelectFile, OutputVar [, Options, RootDir\Filename, Prompt, Filter]
Parameters[編集]
引数名 | 説明 | |
---|---|---|
OutputVar | 選択されたファイル名が格納される変数名 | |
Options | 以下のものの和。省略時は 0 。値の前に S をつけると、 保存 ダイアログにできる。8 を指定して 16 を指定しなかった場合、強制的に 保存 ダイアログになる。4 を指定する代わりに、値の前に M をつけることもできる。(例: M M3 )
| |
1 | 存在しないファイルを禁止する | |
2 | 存在しないパスを禁止する | |
4 | 複数選択を許可する | |
8 | 存在しないファイルを指定したとき、新規作成するかを問い合わせる | |
16 | 存在するファイルを指定したとき、上書きするかを問い合わせる | |
32 | ショートカットファイル(*.lnk)を選択したとき、リンク先のファイルではなくショートカットファイルそのものが選択されるようになる | |
RootDir\Filename | 最初に表示されるディレクトリ。 相対パスで指定したときは、%A_WorkingDir%からの相対パスとみなされる。 省略時の設定はOSに依存する。 ::{20d04fe0-3aea-1069-a2d8-08002b30309d} のようなCLSIDも指定可能。指定できるCLSIDはCLSID一覧参照 ::{450d8fba-ad25-11d0-98a8-0800361b1103}\My Pictures のように、CLSIDに続いてサブフォルダのパスをを指定することも可能最後にファイル名を含むパスを指定すると、ファイル名入力欄のデフォルト値を指定できる。 | |
Prompt | ダイアログのタイトルバーに表示されるメッセージを指定。省略時は Select File
| |
Filter | 表示するファイル名をワイルドカードで指定。 例: WSH Script File(*.js;*.vbs) 省略時は、 ファイルの種類 には All Files (*.*) と Text Documents (*.txt) が表示される。指定時は、そのフィルタと All Files (*.*) が表示される。
|
ErrorLevel[編集]
ユーザーがファイルを選択せずにダイアログを閉じた場合は 1
。([キャンセル]ボタンを押す等)
まれに、システムがダイアログを表示することを拒否した場合も 1
になる。
それ以外は 0
。
AHKL [v1.1.04+] このコマンドは失敗した場合に例外をスローすることができる。詳細は実行時エラーを参照。
Remarks[編集]
OutputVarには選択されたファイルのフルパスが格納される。
キャンセル
ボタンを押したり、 閉じる
ボタンでダイアログを閉じたりすると、OutputVarは空になる。
複数のファイルが選択された場合、改行(`n)区切りで列挙される。
その場合、1行目はファイルのあるディレクトリになり、残りはディレクトリパスを含まないファイル名になる。
このとき、結果が64KBを超えるような場合は結果が空になってしまう。
なお、Optionsで M
を使わずに 4
で複数選択にした場合、ひとつしか選択しなかったときはフルパスが1行に格納されるようになる。
Gui,+OwnDialogsを使用することで、GUIウィンドウの子ウィンドウとしてダイアログを表示することができる。
子ウィンドウとしてダイアログが表示されている間は、親となるGUIウィンドウは操作できなくなる。
Related[編集]
FileSelectFolder, MsgBox, InputBox, ToolTip
Example(s)[編集]
FileSelectFile, SelectedFile, 3, , Open a file, Text Documents (*.txt; *.doc) If SelectedFile = MsgBox, The user didn't select anything. Else MsgBox, The user selected the following:`n%SelectedFile%; MULTI-SELECT EXAMPLE:
FileSelectFile, files, M3; M3 = Multiselect existing files.
If files = { MsgBox, The user pressed cancel. Return } Loop, Parse, files, `n { If A_Index = 1 MsgBox, The selected files are all contained in %A_LoopField%. Else { MsgBox, 4, , The next file is %A_LoopField%. Continue? IfMsgBox, No, Break } } Return