Windows - formattazione Floppy O Altro




dos # This code allows your VB program to bring up a dialog from another program. In this case, it brings up the format dialog from File Manager.
' Subroutine to call Format code in FORM1.FRM

' The subroutine FMFormat assumes that it is being called

' from the main form of your project. It ensures the

' program ends if Form1 is unloaded!

Sub Command1_Click ()
FMFormat form1
End Sub

'Declarations in MODULE.BAS

Type Rect
Left As Integer
Top As Integer
Right As Integer
Bottom As Integer
End Type

Declare Sub SetWindowPos Lib "User" (ByVal hWnd As Integer, _
ByVal hWndInsertAfter As Integer, ByVal x As Integer, _
ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, _
ByVal wFlags As Integer)
Declare Sub GetWindowRect Lib "User" (ByVal hWnd As Integer, lpRect As Rect)
Declare Function IsWindow Lib "User" (ByVal hWnd As Integer) As Integer
Declare Function WinExec Lib "Kernel" (ByVal lpCmdLine As String, _
ByVal nCmdShow As Integer) As Integer
Declare Function SetActiveWindow Lib "User" (ByVal hWnd As Integer) As Integer
Declare Function LockWindowUpdate Lib "User" (ByVal hwndLock As Integer) As Integer
Declare Function GetDesktopWindow Lib "User" () As Integer
Declare Function FindWindow Lib "User" (ByVal lpClassName As Any, _
ByVal lpWindowName As Any) As Integer
Declare Function PostMessage Lib "User" (ByVal hWnd As Integer, _
ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Long) _
As Integer
Const WM_COMMAND = & H111
Const WM_CLOSE = & H10
Const SWP_NOSIZE = & H1
Const SWP_NOZORDER = & H4
'Subroutine CenterDialog in MODULE.BAS

Sub CenterDialog (WinText As String, FMThwnd As Integer)
Dim lpDlgRect As Rect
Dim lpDskRect As Rect
Do
FMThwnd = FindWindow(0&, WinText)
If FMThwnd Then Exit Do
x% = DoEvents()
Loop
Call GetWindowRect(FMThwnd, 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(FMThwnd, 0, x%, y%, 0, 0, SWP_NOZORDER Or SWP_NOSIZE)
End Sub

'Subroutine FMFormat in MODULE.BAS

Sub FMFormat (f As Form)
Dim WFflag As Integer, FMThwnd As Integer
formhwnd = f.hWnd
FMThwnd = FindWindow(0&, "Format Disk")
If FMThwnd > 0 Then 'format dialog already open
x% = SetActiveWindow(FMThwnd)
Exit Sub
End If
WFflag = False
FMhWnd = FindWindow("WFS_Frame", 0&)
If FMhWnd = 0 Then
i% = WinExec("Winfile", 0)
FMhWnd = FindWindow("WFS_Frame", 0&)
If FMhWnd = 0 Then
MsgBox "Can't find the File Manager.", 48, "Warning"
Exit Sub
End If
WFflag = True
End If
x% = LockWindowUpdate(GetDesktopWindow())
x% = PostMessage(FMhWnd, WM_COMMAND, &HCB, 0)
Call CenterDialog("Format Disk", FMThwnd)
x% = LockWindowUpdate(0)
While IsWindow(FMThwnd)
x% = DoEvents()
If IsWindow(formhwnd) = 0 Then x% = PostMessage(FMThwnd, WM_CLOSE, 0, 0)
Wend
If WFflag Then x% = PostMessage(FMhWnd, WM_CLOSE, 0, 0)
If IsWindow(formhwnd) = 0 Then
End
Else
x% = SetActiveWindow(formhwnd)
End If
End Sub











( windowsformattazionefloppyoaltro.html )- by Paolo Puglisi - Modifica del 17/12/2023