سلام .
چجوری میتونم یه درایو هارد رو فرمت کنم ؟! آیا api ای در این مورد هست ؟
در ضمن چجوری میشه یه progress bar گذاشت تا میزان پیشرفت فرمت کردن ( و یا هر کار دیگه ای مثل کپی کردن فایل ) رو نشون بده ؟
ممنون از دوستان :11:
Printable View
سلام .
چجوری میتونم یه درایو هارد رو فرمت کنم ؟! آیا api ای در این مورد هست ؟
در ضمن چجوری میشه یه progress bar گذاشت تا میزان پیشرفت فرمت کردن ( و یا هر کار دیگه ای مثل کپی کردن فایل ) رو نشون بده ؟
ممنون از دوستان :11:
برای فرمت می توانید از shell و احضار داس و استفاده از دستورات داس و فرمت کردن درایو format c (که درایو c فرمت می شود)
خوب اسم api مورد نظر رو بگید و بگین چجوری درایو و بقیه چیز ها رو تنظیم کنی . مثلا :
کد:shell"apiname C"
به نظر من دستور shell آنچنان که باید و شاید برای برنامه های رسمی
کار آمد نیست و من به شما توصیه می کنم از این روش استفاده کنی.
کد:'**************************************
'Windows API/Global Declarations for :cm
' dFormatDrive
'**************************************
Private Declare Function SHFormatDrive Lib "shell32" _
(ByVal hwnd As Long, ByVal Drive As Long, ByVal fmtID As Long, _
ByVal options As Long) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias _
"GetDriveTypeA" (ByVal nDrive As String) As Long
'**************************************
' Name: cmdFormatDrive
' Description:Format Floppy Disk using A
' PI:Here is the code on How to Format Flo
' ppy Disk using API. Note -- This code ca
' n format your Hard Disk as well, so you
' should be careful!!!!
' By: Duncan Diep
'
'This code is copyrighted and has' limited warranties.Please see http://w
' ww.Planet-Source-Code.com/vb/scripts/Sho
' wCode.asp?txtCodeId=68&lngWId=1'for details.'**************************************
Add 2 command buttons named :
cmdFormat and cmdDiskCopy
Private Sub cmdFormatDrive_Click()
Dim DriveLetter$, DriveNumber&, DriveType&
Dim RetVal&, RetFromMsg%
DriveLetter = UCase(Drive1.Drive)
DriveNumber = (Asc(DriveLetter) - 65) ' Change letter To Number: A=0
DriveType = GetDriveType(DriveLetter)
If DriveType = 2 Then 'Floppies, etc
RetVal = SHFormatDrive(Me.hwnd, DriveNumber, 0&, 0&)
Else
RetFromMsg = MsgBox("This drive is Not a removeable" & vbCrLf & _
"drive! Format this drive?", 276, "SHFormatDrive Example")
Select Case RetFromMsg
Case 6'Yes
' UnComment to do it...
'RetVal = SHFormatDrive(Me.hwnd, DriveNu
' mber, 0&, 0&)
Case 7'No
' Do nothing
End Select
End If
End Sub
Private Sub cmdDiskCopy_Click()
' DiskCopyRunDll takes two parameters- F
' rom and To
Dim DriveLetter$, DriveNumber&, DriveType&
Dim RetVal&, RetFromMsg&
DriveLetter = UCase(Drive1.Drive)
DriveNumber = (Asc(DriveLetter) - 65)
DriveType = GetDriveType(DriveLetter)
If DriveType = 2 Then 'Floppies, etc
RetVal = Shell("rundll32.exe diskcopy.dll,DiskCopyRunDll " _
& DriveNumber & "," & DriveNumber, 1) 'Notice space after
Else' Just In Case 'DiskCopyRunDll
RetFromMsg = MsgBox("Only floppies can" & vbCrLf & _
"be diskcopied!", 64, "DiskCopy Example")
End If
End Sub
Add 1 ListDrive name Drive1
Private Sub Drive1_Change()
Dim DriveLetter$, DriveNumber&, DriveType&
DriveLetter = UCase(Drive1.Drive)
DriveNumber = (Asc(DriveLetter) - 65)
DriveType = GetDriveType(DriveLetter)
If DriveType 2 Then 'Floppies, etc
cmdDiskCopy.Enabled = False
Else
cmdDiskCopy.Enabled = True
End If
End Sub
بسیار ممنونم ، خیل بهم کمک کردین . :11: