Opens the Shell's Format dialog
#include <WinAPIDlg.au3>
_WinAPI_FormatDriveDlg ( $sDrive [, $iOption = 0 [, $hParent = 0]] )
$sDrive | The drive to format, in the format D:, E:, etc. |
$iOption | [optional] This parameter must be 0 or one of the following values that alter the default format options in the dialog. $SHFMT_OPT_FULL (Default) $SHFMT_OPT_QUICKFORMAT $SHFMT_OPT_SYSONLY |
$hParent | [optional] Handle of the parent window of the dialog. |
Success: | The format ID of the last successful format. The LOWORD of this value can be passed on subsequent calls as the fmtID parameter to repeat the last format. |
Failure: | 0 and sets the @error flag to one of the following constant. $SHFMT_ERROR $SHFMT_CANCEL $SHFMT_NOFORMAT |
The format is controlled by the dialog interface.
That is, the user must click the OK button to actually begin the format—the format cannot be started programmatically.
Search SHFormatDrive in MSDN Library.
#include <Array.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPIDlg.au3>
Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 200, 100)
Local $vDrive = DriveGetDrive('ALL')
$vDrive = StringUpper(_ArrayToString($vDrive, '|', 1))
GUICtrlCreateLabel('Select drive:', 15, 29, 62, 14)
Local $idCombo = GUICtrlCreateCombo('', 79, 25, 40, 21, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, $vDrive, StringLeft($vDrive, 2))
Local $idButton = GUICtrlCreateButton('Format...', 65, 70, 70, 23)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idButton
_WinAPI_FormatDriveDlg(GUICtrlRead($idCombo), 0, $hForm)
EndSwitch
WEnd