FileSelectFile

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | 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