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.