ユーザーが保存するドライブ、ディレクトリ、ファイルの名前を指定するためのSaveダイアログボックスを作成します。
#Include <WinAPI.au3>
_WinAPI_GetSaveFileName([$sTitle = "" [, $sFilter = "All files (*.*)" [, $sInitalDir = "." [, $sDefaultFile = "" [, $sDefaultExt = "" [, $iFilterIndex = 1 [, $iFlags = 0 [, $iFlagsEx = 0 [, $hwndOwner = 0]]]]]]]]])
パラメータ
$sTitle | [オプション]ダイアログボックスのタイトルバーに配置する文字列 |
$sFilter | [オプション]フィルター文字列のペア(例えば"Text Files (*.txt)|All Files (*.*)") 各ペアの最初の文字列はフィルター説明の表示文字列です(例えば"Text Files")。 2番目の文字列はフィルターパターンを表します(例えば"*.TXT")。 1つの表示文字列に複数のパターンを指定するには、セミコロンを使用してパターンを区切ってください(例えば"*.TXT;*.DOC;*.BAK")。 パターン文字列は有効なファイル名文字列とアスタリスク(*)のワイルドカードの組み合わせです。 パターン文字列にスペースを含めることはできません。 |
$sInitalDir | [オプション]初期ディレクトリを指定する文字列 |
$sDefaultFile | [オプション]File Nameエディットコントロールの初期化に使用されるファイル名 |
$sDefaultExt | [オプション]デフォルト拡張子を格納している文字列 |
$iFilterIndex | [オプション]File Typesコントロールで現在選択されているフィルターのインデックスを指定します |
$iFlags | [オプション]$tagOPENFILENAMEのFlagsを参照 |
$iFlagsEx | [オプション]$tagOPENFILENAMEのFlagExを参照 |
$hwndOwner | [オプション]ダイアログボックスを所有するウィンドウのハンドル。 このメンバーは有効なウィンドウのハンドルです。 ダイアログボックスにオーナーを設定しない場合は0です。 |
返し値
成功: | 次のフォーマットの配列: |
[0] - 文字列の数を格納しています(2) | |
[1] - 選択されたパスを格納しています | |
[2] - 選択されたファイルを格納しています | |
失敗: | 0が設定された長さ1の配列 |
注意
なし。
関連
$tagOPENFILENAME, _WinAPI_GetOpenFileName, _WinAPI_CommDlgExtendedError
こちらも参照
MSDNライブラリでGetSaveFileNameを検索して下さい。
例
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <StructureConstants.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
Opt('MustDeclareVars', 1)
Global $iMemo
_Example_Defaults()
_Example_ExplorerStyle()
_Example_OldStyle()
_Example_ExplorerStyle_NoPlaceBar()
Func _Example_Defaults()
Local $hGui, $btn_dialog, $aFile, $sError
; GUI作成
$hGui = GUICreate("GetSaveFileName use defaults", 400, 296)
$iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn_dialog = GUICtrlCreateButton("Save Dialog", 155, 270, 90, 20)
GUISetState()
While 1
Switch GUIGetMsg()
Case $btn_dialog
$aFile = _WinAPI_GetSaveFileName() ; use defaults
If $aFile[0] = 0 Then
$sError = _WinAPI_CommDlgExtendedError()
MemoWrite("CommDlgExtendedError (" & @error & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MemoWrite($aFile[$x])
Next
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete($hGui)
EndFunc ;==>_Example_Defaults
Func _Example_ExplorerStyle()
Local $hGui, $btn_dialog, $aFile, $sError
; GUI作成
$hGui = GUICreate("GetSaveFileName use Explorer Style", 400, 296)
$iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn_dialog = GUICtrlCreateButton("Save Dialog", 155, 270, 90, 20)
GUISetState()
While 1
Switch GUIGetMsg()
Case $btn_dialog
$aFile = _WinAPI_GetSaveFileName("My Save File Dialog", _
"Text File (*.txt)|AutoIt File (*.au3)", ".", _
"", "au3", 2, 0, 0, $hGui)
If $aFile[0] = 0 Then
$sError = _WinAPI_CommDlgExtendedError()
MemoWrite("CommDlgExtendedError (" & @error & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MemoWrite($aFile[$x])
Next
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete($hGui)
EndFunc ;==>_Example_ExplorerStyle
Func _Example_OldStyle()
Local $hGui, $btn_dialog, $aFile, $sError
; GUI作成
$hGui = GUICreate("GetSaveFileName use Old Style", 400, 296)
$iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn_dialog = GUICtrlCreateButton("Save Dialog", 155, 270, 90, 20)
GUISetState()
While 1
Switch GUIGetMsg()
Case $btn_dialog
$aFile = _WinAPI_GetSaveFileName("My Save File Dialog", _
"Text File (*.txt)|AutoIt File (*.au3)", ".", "", _
"", 2, $OFN_ALLOWMULTISELECT, 0, $hGui)
If $aFile[0] = 0 Then
$sError = _WinAPI_CommDlgExtendedError()
MemoWrite("CommDlgExtendedError (" & @error & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MemoWrite($aFile[$x])
Next
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete($hGui)
EndFunc ;==>_Example_OldStyle
Func _Example_ExplorerStyle_NoPlaceBar()
Local $hGui, $btn_dialog, $aFile, $sError
; GUI作成
$hGui = GUICreate("GetSaveFileName use Explorer Style No Place Bar", 400, 296)
$iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn_dialog = GUICtrlCreateButton("Save Dialog", 155, 270, 90, 20)
GUISetState()
While 1
Switch GUIGetMsg()
Case $btn_dialog
$aFile = _WinAPI_GetSaveFileName("My Save File Dialog", _
"Text File (*.txt)|AutoIt File (*.au3)", ".", "", _
"", 2, 0, $OFN_EX_NOPLACESBAR, $hGui)
If $aFile[0] = 0 Then
$sError = _WinAPI_CommDlgExtendedError()
MemoWrite("CommDlgExtendedError (" & @error & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MemoWrite($aFile[$x])
Next
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete($hGui)
EndFunc ;==>_Example_ExplorerStyle_NoPlaceBar
; メモコントロールに1行書き込み
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite