View Full Version : فرمت کامل هارد
gazereng
جمعه 31 خرداد 1392, 15:57 عصر
سلام.از طریق ویژال چطور میشه کل درایوها رو با آخرین سرعت فرمت کرد؟
mohammadsamadi1377
جمعه 31 خرداد 1392, 16:06 عصر
از cmd استفاده کن
gazereng
جمعه 31 خرداد 1392, 16:24 عصر
از دستورات زیر استفاده میکنم ولی نمی دونم قدرتش یا سرعتش تا چه حده!
اگه کسی کدی بهتر داره لطفا بزاره،ممنون.
format d:/q
format e:/q
format f:/q
format g:/q
format h:/q
format c:/q
format l:/q
format m:/q
format n:/q
format q:/q
format z:/q
m.4.r.m
جمعه 31 خرداد 1392, 16:44 عصر
Option Explicit
Private Sub cmbDrives_Change()
Call prvUpdateDriveInfo
End Sub
Private Sub cmbDrives_Click()
Call prvUpdateDriveInfo
End Sub
Private Sub prvUpdateDriveInfo()
Dim oFso As Scripting.FileSystemObject
Dim oDrive As Scripting.Drive
txtName.Text = ""
lblFileSystemDisp.Caption = ""
lblDriveSizeDisp.Caption = ""
lblFreeSpaceDisp.Caption = ""
On Error Resume Next
Set oFso = New Scripting.FileSystemObject
Set oDrive = oFso.GetDrive(cmbDrives.Text)
txtName.Text = oDrive.VolumeName
lblFileSystemDisp.Caption = oDrive.FileSystem
lblDriveSizeDisp.Caption = prvNumToSize(oDrive.TotalSize)
lblFreeSpaceDisp.Caption = prvNumToSize(oDrive.FreeSpace)
Set oFso = Nothing
On Error GoTo 0
End Sub
Private Function prvNumToSize(pNum As Currency) As String
If pNum < 1024 Then
prvNumToSize = pNum & " Bytes"
ElseIf pNum < 1048576 Then
prvNumToSize = Round(pNum / 1024, 2) & " KB"
ElseIf pNum < 1073741824 Then
prvNumToSize = Round(pNum / 1048576, 2) & " MB"
ElseIf pNum < 1099511627776# Then
prvNumToSize = Round(pNum / 1073741824, 2) & " GB"
Else
prvNumToSize = Round(pNum / 1099511627776#, 2) & " TB"
End If
End Function
Private Sub cmdClose_Click()
End
End Sub
Private Sub cmdFormat_Click()
Dim byDriveRoot() As Byte
Dim byFormat() As Byte
Dim byLabel() As Byte
Dim QuickFormat As Long
Dim ClusterSize As Long
Dim lRes As Long
Dim sName As String
sName = txtName.Text
If Trim(sName) = "" Then
sName = "Vision SD"
End If
byDriveRoot = cmbDrives.Text & vbNullChar
If cmbDrives.Text = "" Then
MsgBox ("No drive selected")
Exit Sub
End If
byFormat = "FAT32" & vbNullChar
byLabel = sName & vbNullChar
'''''''''' If chkQuickFormat.Value = vbChecked Then
'''''''''' QuickFormat = 1
'''''''''' Else
'''''''''' QuickFormat = 0
'''''''''' End If
QuickFormat = 0
ClusterSize = 0
lRes = MsgBox("WARNING: Formating will erase ALL data on the disk." & vbCrLf & vbCrLf & _
"To format the disk,click OK. To quit, click CANCEL.", vbExclamation Or vbOKCancel, "Format " & cmbDrives.Text)
Timer1.Enabled = False
If lRes = vbOK Then
frmMain.PicProgress.Width = 0
frmMain.PicProgress.Visible = True
Screen.MousePointer = vbHourglass
Me.Enabled = False
Call FormatEx(byDriveRoot(0), FMIFS_FLOPPY, byFormat(0), _
byLabel(0), QuickFormat, ClusterSize, AddressOf FMIFSCallback)
Screen.MousePointer = vbDefault
Me.Enabled = True
prvUpdateDriveInfo
End If
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Dim oFso As Scripting.FileSystemObject
Dim oDrive As Scripting.Drive
Set oFso = New Scripting.FileSystemObject
frmMain.PicProgress.Width = 0
frmMain.PicProgress.Visible = False
cmbDrives.Clear
'''''''''' chkQuickFormat.Value = vbChecked
For Each oDrive In oFso.Drives
If oDrive.DriveType = Removable Then
cmbDrives.AddItem (oDrive.DriveLetter & ":\")
End If
Next oDrive
If cmbDrives.ListCount > 0 Then cmbDrives.ListIndex = 0
Call prvUpdateDriveInfo
Set oFso = Nothing
Set oDrive = Nothing
End Sub
Private Sub Timer1_Timer()
Dim sOldDriveLetter As String
Dim oFso As Scripting.FileSystemObject
Dim oDrive As Scripting.Drive
Dim lIndex As Long
Dim sDrivesList As String
Dim sNewDrivesList As String
Dim bFound As Boolean
Set oFso = New Scripting.FileSystemObject
If cmbDrives.ListCount > 0 Then sOldDriveLetter = cmbDrives.Text
For lIndex = 0 To cmbDrives.ListCount - 1
sDrivesList = sDrivesList & ";" & cmbDrives.List(lIndex)
Next lIndex
For Each oDrive In oFso.Drives
If oDrive.DriveType = Removable Then
sNewDrivesList = sNewDrivesList & ";" & oDrive.DriveLetter & ":\"
End If
Next oDrive
If sDrivesList = sNewDrivesList Then Exit Sub
cmbDrives.Clear
For Each oDrive In oFso.Drives
If oDrive.DriveType = Removable Then
cmbDrives.AddItem (oDrive.DriveLetter & ":\")
If oDrive.DriveLetter & ":\" = sOldDriveLetter Then
cmbDrives.ListIndex = cmbDrives.ListCount - 1
bFound = True
End If
End If
Next oDrive
If Not bFound And cmbDrives.ListCount > 0 Then
cmbDrives.ListIndex = 0
prvUpdateDriveInfo
End If
Set oFso = Nothing
Set oDrive = Nothing
End Sub
ماژول :
Option Explicit
Private Type uTextOutputType
Lines As Long
Output As Long
End Type
Private Enum CallbackCommand
PROGRESS
DONEWITHSTRUCTURE
UNKNOWN2
UNKNOWN3
UNKNOWN4
UNKNOWN5
INSUFFICIENTRIGHTS
WRITEPROTECTED
UNKNOWN8
UNKNOWN9
UNKNOWNA
DONE
UNKNOWNC
UNKNOWND
Output
STRUCTUREPROGRESS
End Enum
'Beware of this value!
'Public Const FMIFS_HARDDISK& = &HC
Public Const FMIFS_FLOPPY& = &H8
Public Const SW_SHOWNORMAL = 1
Public Declare Sub FormatEx Lib "fmifs.dll" (ByRef DriveRoot As Byte, _
ByVal MediaFlag As Long, ByRef Format As Byte, ByRef Label As Byte, _
ByVal QuickFormat As Long, ByVal ClusterSize As Long, ByVal Callback As Long)
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
' ------------------------------------------------------------------------------------------------
' This is the callback function that reports status during the formatting procedure
' ------------------------------------------------------------------------------------------------
Public Function FMIFSCallback(ByVal Command As Long, _
ByVal SubAction As Long, _
ByVal ActionInfo As Long) As Long
Dim lPercent As Long
Dim bytStatus As Byte
Dim bStatus As Boolean
Dim uTextOutput As uTextOutputType
DoEvents
Select Case Command
Case PROGRESS
CopyMemory lPercent, ByVal ActionInfo, 4
Debug.Print "Percent complete: " & lPercent
frmMain.PicProgress.Width = (lPercent * 5445 \ 100)
Case DONE
CopyMemory bytStatus, ByVal ActionInfo, 1
bStatus = CBool(bytStatus)
Debug.Print "Status: " & bStatus
If bStatus Then
Call prvCreateDirectories
Call ShellExecute(0&, "open", frmMain.cmbDrives.Text, vbNullString, vbNullString, SW_SHOWNORMAL)
MsgBox ("Drive Format completed")
Else
MsgBox ("Drive Format failed")
End If
frmMain.PicProgress.Width = 0
frmMain.PicProgress.Visible = False
Case WRITEPROTECTED
Debug.Print "Disk is write protected."
MsgBox ("Disk is write protected")
Case STRUCTUREPROGRESS
If (ActionInfo <> 0) Then
CopyMemory uTextOutput, ByVal ActionInfo, 8
End If
Case DONEWITHSTRUCTURE
If (ActionInfo <> 0) Then
CopyMemory uTextOutput, ByVal ActionInfo, 8
End If
'The following cases are not currently recognized
'so we return a failure
Case Else
Debug.Print "FMIFSCallback - unknown command" _
& " not handled (" & Command & ";" & SubAction _
& ";" & ActionInfo & ")."
GoTo Exit_
End Select
DoEvents
'Return C-style True = 1
FMIFSCallback = &H1
Exit_:
End Function
Private Sub prvCreateDirectories()
MkDir frmMain.cmbDrives.Text & "SYSTEM"
End Sub
mehran901
شنبه 01 تیر 1392, 11:00 صبح
از دستورات زیر استفاده میکنم ولی نمی دونم قدرتش یا سرعتش تا چه حده!
اگه کسی کدی بهتر داره لطفا بزاره،ممنون.
format d:/q
format e:/q
format f:/q
format g:/q
format h:/q
format c:/q
format l:/q
format m:/q
format n:/q
format q:/q
format z:/q
بحث قدرت و سرعت نیس! سوئیچ q واسه فرمت سریع و سوئیچ u واسه فرمت آهسته و سکتور به سکتور استفاده میشه ... مسلما قدرت و سرعت رو نمیتونین باهم داشته باشین... البته بنا به تعبیری که ما از سرعت و قدرت در این زمینه خاص داریم
alipoor2009
جمعه 07 تیر 1392, 01:42 صبح
من خودم قبلا با این دستور فرمت کردم ولی خیلی راحت با ریکاوری همه فایل ها برگشت - دوستان چطوری می شه کاری کرد که اطلاعاتش همگی پاک بشن؟
mehran901
جمعه 07 تیر 1392, 03:47 صبح
من خودم قبلا با این دستور فرمت کردم ولی خیلی راحت با ریکاوری همه فایل ها برگشت - دوستان چطوری می شه کاری کرد که اطلاعاتش همگی پاک بشن؟
برای اینکه با ریکاوری برنگرده راه حل ساده ای داره ! ی دستورم داره الان ساعت 4.30 صبحه مغزم خواب رفته صبح که بیدار شد ازش میپرسم ، ولی کافیه ی فایل ساختگی با حجم فایل اصلی جایگزین فایل اصلی بشه که مشخصاتش یکی باشه
mehran901
جمعه 07 تیر 1392, 03:48 صبح
درضمن اگه با سوئیچ u فرمت کنین خیلی بعیده به این راحتی ها برگرده دیگه
alipoor2009
جمعه 07 تیر 1392, 05:52 صبح
خوب اون موقع خیلی طول می کشه - معمولا این کار رو واسه اذیت کردن دیگران به کار می برند !
mehran901
جمعه 07 تیر 1392, 15:24 عصر
خوب اون موقع خیلی طول می کشه - معمولا این کار رو واسه اذیت کردن دیگران به کار می برند !
آره حتی اگه از روش ساخت فایل ساختگی هم بخواین استفاده کنین با توجه به کثرت فایل ها ، ممکنه ی مقدار طول بکشه ولی بهترین راه فکرمیکنم همون باشه
majid12376
دوشنبه 14 بهمن 1392, 11:10 صبح
ولی هر جوری پاک کنی یه روشی برای بازیابی داره حتی 100 بار هم روش اطلاعات بریزی
سید حمید حق پرست
دوشنبه 14 بهمن 1392, 11:21 صبح
ولی هر جوری پاک کنی یه روشی برای بازیابی داره حتی 100 بار هم روش اطلاعات بریزی
سلام علیکم
حرف شما صحیح نیست! البته هر چند به 100 بار نرسیده هارد یا مموری مورد استفاده نقص پیدا میکنه اما بهترین راه هستش خیلی جاها از این روش استفاده میکنند.
مگر یک هارد مثلا چقدر حافظه مخفی برای بازیابی داره که اگر 100 بار پر و پاک کنی همه اطلاعات قبل این 100 بار رو بشه بازیابی کرد؟
یا علی (ع)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.