VB Center | Code Library | Windows 95 and NT 4 Shell

Displaying the Windows Format Dialog Box

Written exclusively for VB Center by Marco Cordero.


Start a new project. To the form, add the following control.

Type Name Index Caption
Command Button cmdFormat   Format Disk

Add a module to the project. Place the following into the general declarations area of the module.

Public Const WM_CLOSE = &H10

Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As Any, _
ByVal lpWindowName As Any) As Long

Declare Function GetWindowsDirectory Lib "kernel32" _
Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long

Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Declare Function GetDesktopWindow Lib "user32" () As Long
Declare Function LockWindowUpdate Lib "user32" _
(ByVal hwndLock As Long) As Long

Declare Function GetWindowRect Lib "user32" _
(ByVal hwnd As Long, lpRect As RECT) As Long
Declare Sub Sleep Lib "kernel32" _
(ByVal dwMilliseconds As Long)

Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Type POINTAPI
X As Long
y As Long
End Type

Const SWP_NOSIZE = &H1
Const SWP_NOZORDER = &H4

 

Public Sub FormatFloppy()

Dim sBuffer As String, Windir As String, Procs As String, X
Dim lResult As Long

sBuffer = String$(255, 0)
lResult = GetWindowsDirectory(sBuffer, Len(sBuffer))

Windir = Trim(sBuffer)

Procs = Left(Windir, lResult) & "\rundll32.exe shell32.dll, SHFormatDrive"

Call CenterDialog("Format - 3½ Floppy (A:)")
X = Shell(Procs, 1)
Call CenterDialog("Format - 3½ Floppy (A:)")

k = LockWindowUpdate(0)

End Sub

 

Public Sub CenterDialog(WinText As String)

DoEvents

On Error Resume Next

Dim D3 As Long
D3 = LockWindowUpdate(GetDesktopWindow())
Dim wdth%
Dim hght%
Dim Scrwdth%
Dim Scrhght%
Dim lpDlgRect As RECT
Dim lpdskrect As RECT

Dim hTaskBar As Long

hTaskBar = FindWindow(0&, WinText)

Call GetWindowRect(hTaskBar, lpDlgRect)
wdth% = lpDlgRect.Right - lpDlgRect.Left
hght% = lpDlgRect.Bottom - lpDlgRect.Top
Call GetWindowRect(GetDesktopWindow(), lpdskrect)
Scrwdth% = lpdskrect.Right - lpdskrect.Left
Scrhght% = lpdskrect.Bottom - lpdskrect.Top

X% = (Scrwdth% - wdth%) / 2
y% = (Scrhght% - hght%) / 2
Call SetWindowPos(hTaskBar, 0, X%, y%, 0, 0, SWP_NOZORDER Or SWP_NOSIZE)

DoEvents

End Sub


Add the following code to the form.

Private Sub cmdFormat_Click()

FormatFloppy

End Sub


Now, press F5 to run the project. If you click the button labeled "Format Disk", you will see the Windows Format Dialog Box appear.

Written exclusively for VB Center by Marco Cordero.

Back to Code Library - Windows 95 and NT 4 Shell

1