º·¤ÇÒÁ¹Õé¨ÐÊÒ¸ÂÒÂãËéàËç¹ÇÔ¸Õ¡ÒÃà¢éÒ¶Ö§ä¿Åì¢éÍÁÙŵèÒ§æ·ÕèÍÂÙèã¹ÍØ»¡Ã³ì¡ÒÃà¡çº¢éÍÁÙÅẺ¾¡¾Ò ËÃ×Í áºº¶Í´ä´é (Remove Drive) ÃÇÁ·Ñé§ Floppy Disk ´éǹèФÃѺ áµè·ÇèÒÂØ¤¹Õé ÊÁѹÕé à¨éÒÍØ»¡Ã³ìµÑǹÕé¡ç¤§¨ÐàËÅ×ÍäÇéà»ç¹à¾Õ§á¤èµÓ¹Ò¹·ÕèàÅèÒ¢Ò¹ä»áÅéÇÁÑé§à¹Õè ... 55555+ â´ÂàÃÒ¨Ðãªé§Ò¹¼èÒ¹ÁÒ·Ò§ Script Object áµè ... á·é¨ÃÔ§áÅéÇ ... á¹Ç·Ò§¹ÕéÁѹ¡ç¤×Í ÇÔ¸Õ¡Ò÷Õè¨Ð¹ÓÁÒãªéÊÃéÒ§à»ç¹äÇÃÑÊ¢Öé¹ÁÒ¡è͡ǹ»ÃÐÊÒ·¼Ù餹ä´é´Õæ¹Ñè¹àͧ ´Ñ§¹Ñ鹺·¤ÇÒÁ¢Í§¼Á ¼Áµéͧ¡ÒèжèÒ·ʹÁØÁÁͧ¢Í§¡ÒÃÈÖ¡ÉÒàÃ×èͧÃÒÇ·Õèà¡ÕèÂǡѺ¡ÒèѴ¡ÒÃä¿Åì â¿Åà´ÍÃì áÅÐ ä´Ã¿ìµèÒ§æ·ÕèÍÂÙèã¹à¤Ã×èͧ¤ÍÁ¾ÔÇàµÍÃì (à·èÒ¹Ñé¹) ´éÇÂÀÒÉÒ MS Visual Basic 6.0 äÁèãªèËÇѧàÓ¾×èÍãËé¼Ùé·ÕèÈÖ¡ÉÒ ¹ÓÁѹÁѹä»ÊÃéÒ§à»ç¹»ÑËÒ¢Öé¹ÁÒ¹èФÃѺ ... ¢Íä´éâ»Ã´¨§à¢éÒã¨ã¹ËÑÇÍ¡¹éÍÂæ¢Í§¼ÙéªÒ (100%) ·Õèª×èÍ ·Í§¡é͹ ´éǹèФÃѺ ... àÍÔê¡ææææ
àÃ×èͧ¢Í§ Script Object »ÃСͺ仴éÇÂ
- FileSystem Object
- TextStream Object
áµèÇѹ¹Õé·Õè¨Ð¡ÅèÒǶ֧¡ç¤×Íã¹àÃ×èͧ¢Í§ FileSystem Object ·Õè¨ÐªèÇÂãËéàÃÒÊÒÁÒö¨Ñ´¡ÒáѺä´Ã¿ì â¿Åà´ÍÃì áÅÐ á¿éÁ¢éÍÁÙź¹ Drive ª¹Ô´µèÒ§æä´é áÅСè͹·Õè¨Ðãªé§Ò¹ FileSystem Object ¹Ñ鹨еéͧÁÕ¡ÒÃÊÃéÒ§ Object ¢Öé¹ÁÒ¡è͹ àªè¹
ÊÓËÃѺ M$ Visual Basic 6
- Private FileSystem As New Scripting.FileSystemObject
ÊÓËÃѺ ASP Script
- Dim FileSystem
- Set FileSystem = Server.CreateObject("Scripting.FileSystemObject")
â´Â FileSystem Object ¹Õéà»ç¹»ÃÐàÀ·¢Í§ Object Ẻ Script (ÊѧࡵØä´é¨Ò¡¡ÒÃãªé¤èÒ¤§·Õè "Script.FileSystemObject") â´ÂµÑÇá»Ã¢Í§ Object ¹Õé¨ÐÁÕª×èÍÇèÒ FileSystem µÑÇá»Ã FileSystem ·ÕèàÃÒ»ÃСÒÈ¢Öé¹ÁÒ¹Ñé¹ ÊÒÁÒö¨Ñ´¡ÒÃà¡ÕèÂǡѺ á¿éÁ¢éÍÁÙÅ â¿Åà´ÍÃì áÅÐ ä´Ã¿ì â´ÂÁÕ àÁ¸Í´ (Method) (ÇÔ¸Õ¡Ò÷ÕèàÃÒÊÒÁÒö¨Ñ´¡ÒáѺ Object ¹Ñé¹) ·Õè¹èÒʹ㨴ѧµèÍ仹Õé
CopyFile, MoveFile ãªéÊÓà¹Ò ËÃ×Í ÂéÒÂá¿éÁ¢éÍÁÙÅ ¨Ò¡·Õè˹Öè§ä»ÂѧÍÕ¡·Õè˹Öè§
CopyFolder, MoveFolder ãªéÊÓà¹Ò ËÃ×Í ÂéÒÂâ¿Åà´ÍÃì ¨Ò¡·Õè˹Öè§ä»ÂѧÍÕ¡·Õè˹Öè§
CreateFolder ãªéÊÃéÒ§â¿Åà´ÍÃì
DeleteFile, DeleteFolder ãªé㹡ÒÃźá¿éÁ¢éÍÁÙÅ áÅÐ â¿Åà´ÍÃì
DriveExists, FolderExists, FileExists ãªé㹡ÒõÃǨÊͺÇèÒä´Ã¿ì â¿Åà´ÍÃì ËÃ×Í á¿éÁ¢éÍÁÙÅÁÕÍÂÙèËÃ×ÍäÁè
GetDrives, GetFolder, GetFile ãªé㹡ÒÃàÃÕ¡ãªé§Ò¹à¡ÕèÂǡѺä´Ã¿ì â¿Åà´ÍÃì ËÃ×Í á¿éÁ¢éÍÁÙÅ
àÃÒÁÒÅͧ´ÙµÑÇÍÂèÒ§¡ç¤×Í ¡ÒõÃǨÊͺä´Ã¿ì â¿Åà´ÍÃì áÅÐ á¿éÁ¢éÍÁÙÅ ÁÕÍÂÙè¨ÃÔ§ËÃ×ÍäÁè àªè¹ ' ¨ÐãËé¤èÒ True àÁ×èÍÁÕä´Ã¿ì C ÍÂÙè¨ÃÔ§ FileSystem.DriveExists("C:")
' ¨ÐãËé¤èÒ True àÁ×èÍÁÕâ¿Åà´ÍÃì temp ã¹ä´Ã¿ì C ÍÂÙè¨ÃÔ§ FileSystem.FolderExists("C:\temp")
' àªè¹à´ÕÂǡѺ 2 ¤ÓÊÑè§´éÒ¹º¹ ¨ÐãËé¤èÒ True àÁ×èÍ ' MyData.txt ÍÂÙèã¹â¿Åà´ÍÃì temp ÀÒÂãµéä´Ã¿ì C ÍÂÙè¨ÃÔ§ FileSystem.FileExists("C:\temp\MyData.txt")
ËÃ×͵ÑÇÍÂèҧ㹡ÒÃźâ¿Åà´ÍÃì áÅÐ ä¿Åì¢éÍÁÙÅ àªè¹ FileSystem.DeleteFolder "C:\temp" FileSystem.DeleteFile "C:\temp\MyData.txt"
- Project --> References ...
- Project --> Components ...
- Design Time
- ÊÓËÃѺ Properties ¢Í§ List View Control
Style = 1 - CheckBox
- ¡è͹ÊÑè§â»Ãá¡ÃÁ·Ó§Ò¹ ¼ÁÅͧ·´ÊͺÊÃéÒ§ä¿Åì inf áÅÐ â¿Åà´ÍÃì resycled ¨Ò¡¹Ñé¹ãËé¹Ó仫è͹àÍÒäÇé (ÊÁÁصÔÇèÒÁѹà»ç¹äÇÃÑÊÅèСѹ ... àÍÔê¡ææææ)
ä»·Õè Start --> Run --> cmd ... ËÃ×Í ¨Ðãªé§Ò¹¼èÒ¹ªèͧºÑªÃ (Windows) ä»àÅ¡çä´é¹èФÃѺ¾Õè¹éͧ
- copy con autorun.inf (¨Ò¡¹Ñé¹¾ÔÁ¾ì¤èÒÍÐäáçä´éÅ§ä» ÊÔé¹ÊØ´¡ÒÃà¡çº¢éÍÁÙÅãËé¡´ Ctrl + Z)
- md resycled ... ÊÃéÒ§â¿Åà´ÍÃìãËÁè (Make Directory)
- attrib +s +h + r autorun.inf ... ¹Óä¿Åì仫è͹äÇé
- attrib +s +h + r resycled ... ¹Óâ¿Åà´ÍÃì仫è͹äÇé
- Run Time ... Áѹ¹èÒÍÑȨÃÃÂì㨤ÃѺ¾Õè¹éͧ ... ä¿Åì áÅÐ â¿Åà´ÍÃì·Õè¶Ù¡«è͹Áѹ¨ÐáÊ´§¼Å¢Öé¹ÁÒãËéàËç¹àÅ â´Â·ÕèäÁèµéͧ仵Ñ駤èÒ ËÃ×Í ¡Ó˹´â¤é´ã´æ·Ñé§ÊÔé¹ (ä»á¡éã¹ Tools --> Folder Options ... ¡çäÁèÁռŤÃѺ ... ¾Õè¹éͧ)
àÃÔèÁµé¹¡Ãкǹ¡Ò÷ӧҹ
' »ÃСÒȤèÒµÑÇá»Ã·Õè¨Óà»ç¹
Option Explicit
' Êèǹ¹Õéà»ç¹¡ÒÃàÃÕ¡ãªé§Ò¹ ScrRun.DLL
Private FSO As New Scripting.FileSystemObject
Dim mDrive As Drive ' ä´Ã¿ì
Dim mFolder As Folder ' â¿Åà´ÍÃì
Dim mFile As File ' ä¿Åì
' ¢Íà¾ÔèÁàµÔÁàÃ×èͧ¢Í§¤Ø³ÊÁºÑµÔ¢Í§µÑÇ Drive àͧ
DriveType ¤èÒµÑÇàÅ¢·ÕèºÍ¡¶Ö§»ÃÐàÀ·¢Í§ Drive
' ¤èÒ 0 ËÁÒ¶֧ ¤èÒ·ÕèäÁèÊÒÁÒöÃкØä´é
' ¤èÒ 1 ËÁÒ¶֧ Removable Drive
' ¤èÒ 2 ËÁÒ¶֧ Fix Drive
' ¤èÒ 3 ËÁÒ¶֧ Network Drive
' ¤èÒ 4 ËÁÒ¶֧ CD Rom Drive
' ¤èÒ 5 ËÁÒ¶֧ RAM Drive
' ¡ÒÃÍèÒ¹ä¿Åì·Ñé§ËÁ´·ÕèÍÂÙèã¹ Remove Drive (ËÃ×Í Flash/Thumb/Handy Drive)
Private Sub ViewFiles()
On Error Resume Next
' ÅÙ»¨Ó¹Ç¹ Drive ·ÕèÁÕ
For Each mDrive In FSO.Drives
' µÃǨÊͺÇèÒÁÕ Drive áÅеéͧà»ç¹áºº Remove Drive à·èÒ¹Ñé¹ ... ¾Ç¡ Hard Drive äÁèµéͧàÍÒÁÒ
If mDrive.IsReady = True And mDrive.DriveType = Removable Then
' ÅÙ»¨Ó¹Ç¹ä¿Åì·ÕèÁÕÍÂÙèã¹ Drive
For Each mFile In mDrive.RootFolder.Files
' ã¹¢³Ð·ÕèáÊ´§¼ÅÃÒª×èÍä¿ÅìÍÍ¡ÁÒ ... ˹èÇ»ÃÐÁżšÅÒ§ ËÃ×Í CPU äÁèä´é·Ó§Ò¹ã¹Êèǹ¹ÕéáÅéÇ
' ¡ç¨Ð·Ó¡ÒÃÊ觤׹ CPU ä»ãËé¡ÑºÃкº»¯ÔºÑµÔ¡Òà («èÐ´Õæ)
DoEvents
' áÊ´§ÃÒª×èÍä¿ÅìÍÍ¡ÁÒ à©¾ÒзÕè¤Ò´ÇèÒÍÒ¨à»ç¹äÇÃÑÊ¡çä´é¹èФÃѺ¼Á
' ¹Ñº¨Ò¡·Ò§¢ÇÒÁÒ 3 µÑÇ (ËÃ×ÍÍèҹ੾ÒйÒÁÊ¡ØÅ) áÅéÇà»ÅÕè¹ãËéà»ç¹µÑÇÍÑ¡ÉõÑÇãËè·Ñé§ËÁ´
' à¾×èÍà»ç¹à§×è͹ä¢ãËé¡Ñº Select Case ... ¾Ô¨ÒóҤÇÒÁµèÒ§¨Ò¡¡ÒÃãªé IF - THEN - ELSE ´éǹèФÃѺ
'Select Case UCase$(Right(mFile.Path, 3))
' Case "BAT", "EXE", "COM", "INF", "VBS", "DLL", "OCX"
' lvwViewer.AddItem mFile.Path
'End Select
' áÊ´§ä¿ÅìÍÍ¡ÁÒ·Ñé§ËÁ´àÅÂ
lvwViewer.AddItem mFile.Path
Next
End If
Next
' Íѹ¹Õé¡çá¤èá¨é§ÃÒ¡Òèӹǹä¿Åì¤ÃѺ¼Á
fraViewer.Caption = " ¨Ó¹Ç¹ " & lvwViewer.ListCount & " ä¿Åì" & " "
End Sub
' ¡ÒÃÍèÒ¹â¿Åà´ÍÃì·Ñé§ËÁ´·ÕèÍÂÙèã¹ Remove Drive (ËÃ×Í Flash/Thumb/Handy Drive)
Private Sub ViewFolders()
On Error Resume Next
Dim nFiles As Integer
nFiles = lvwViewer.ListCount
' ÅÙ»¨Ó¹Ç¹ Drive ·ÕèÁÕ
For Each mDrive In FSO.Drives
' µÃǨÊͺÇèÒÁÕ Drive áÅеéͧà»ç¹áºº Remove Drive à·èÒ¹Ñé¹ ... ¾Ç¡ Hard Drive äÁèµéͧàÍÒÁÒ
If mDrive.IsReady = True And mDrive.DriveType = Removable Then
' ÅÙ»¨Ó¹Ç¹â¿Åà´ÍÃì·ÕèÁÕÍÂÙèã¹ Drive
For Each mFolder In mDrive.RootFolder.SubFolders
' DoEvents ...
' ¡ÒùÓä»»ÃÐÂØ¡µìãªé§Ò¹ÍÕ¡ÍÂèÒ§¡ç¤×Í ¡ÒÃÊè§§Ò¹¾ÔÁ¾ì à»ç¹¨Ó¹Ç¹Ë¹éÒÁÒ¡æ´éǹèФÃѺ ... ¾Õè¹éͧ
' à¾×èÍãËéÃкº»¯ÔºÑµÔ¡Òà (OS) ÊÒÁÒöãªé§Ò¹ CPU ä´éÍÂèÒ§àµçÁ»ÃÐÊÔ·¸ÔÀÒ¾
DoEvents
' áÊ´§ª×èÍâ¿Åà´ÍÃìÍÍ¡ÁÒ
lvwViewer.AddItem mFolder.Path
Next
End If
Next
' Êèǹ¢Í§¡ÒùѺ¨Ó¹Ç¹ä¿Åì ËÃ×Í â¿Åà´ÍÃì
If nFiles <> 0 Then
nFiles = lvwViewer.ListCount - nFiles
fraViewer.Caption = fraViewer.Caption & " / ¨Ó¹Ç¹ " & nFiles & " â¿Åà´ÍÃì" & " "
Else
fraViewer.Caption = fraViewer.Caption & " ¨Ó¹Ç¹ " & lvwViewer.ListCount & " â¿Åà´ÍÃì" & " "
End If
End Sub
' â»Ãá¡ÃÁÂèÍÂ㹡ÒÃźä¿Åì ËÃ×Í â¿Åà´ÍÃì·ÕèàÅ×Í¡
Private Sub cmdDelete_Click()
On Error Resume Next
Dim sRow As Integer
Dim lvwData As Integer
lvwData = 0
' ¹Ñº¨Ó¹Ç¹·Õè¤ÅÔê¡à¤Ã×èͧËÁÒ¶١˹éÒä¿Åì (â¿Åà´ÍÃì)
For sRow = 0 To lvwViewer.ListCount - 1
If lvwViewer.Selected(sRow) = True Then
lvwData = lvwData + 1
End If
Next
' µÃǨÊͺ¡è͹ÇèÒÁÕ¡ÒÃàÅ×Í¡à¤Ã×èͧËÁÒ¶١˹éÒä¿Åì (â¿Åà´ÍÃì) àÃÕºÃéÍÂáÅéÇËÃ×ÍäÁè
If lvwData = 0 Then
MsgBox "¡ÃسÒàÅ×Í¡ä¿Åì (â¿Åà´ÍÃì) ·Õèµéͧ¡ÒèÐźãËéàÃÕºÃéÍ¡è͹´éÇÂ.", vbExclamation, App.CompanyName
Exit Sub
End If
' ¶ÒÁÂ×¹Âѹ¡ÒÃźä¿Åì (â¿Åà´ÍÃì)
If MsgBox("¤Ø³á¹èã¨ÇèÒµéͧ¡ÒÃźä¿Åì (â¿Åà´ÍÃì) ÍÍ¡?" & vbCrLf & _
"¡´ [OK] àÁ×è͵éͧ¡ÒÃź ËÃ×Í " & vbCrLf & _
"¡´ [Cancel] àÁ×è͵éͧ¡ÒáàÅÔ¡.", vbOKCancel + _
vbQuestion + vbDefaultButton2, "Â×¹Âѹ¡ÒÃźä¿Åì â¿Åà´ÍÃì") _
= vbCancel Then Exit Sub
' ÅÙ»µÒÁ¨Ó¹Ç¹ÃÒ¡Ò÷ÕèÁÕÍÂÙèã¹ ListView
For sRow = 0 To lvwViewer.ListCount - 1
DoEvents
If lvwViewer.Selected(sRow) = True Then
lvwViewer.ListIndex = sRow
DoEvents
' ¡Ã³Õ·ÕèÁÕ¡ÒÃàÅ×Í¡à¤Ã×èͧËÁÒ¶١˹éÒä¿Åì (â¿Åà´ÍÃì)
If lvwViewer.Selected(sRow) = True Then
' µÃǨÊͺÍÕ¡¤ÃÑé§ÇèÒÂѧÁÕä¿Åì (â¿Åà´ÍÃì) ÍÂÙèËÃ×ÍäÁè (FilesExists/FolderExists)
If FSO.FileExists(lvwViewer.List(sRow)) = True Then
' Method ¡ÒÃźä¿Åì
FSO.DeleteFile lvwViewer.List(sRow), True
' źÃÒ¡ÒÃÍÍ¡¨Ò¡ ListView
lvwViewer.RemoveItem sRow
ElseIf FSO.FolderExists(lvwViewer.List(sRow)) = True Then
' Method ¡ÒÃźâ¿Åà´ÍÃì
FSO.DeleteFolder lvwViewer.List(sRow), True
' źÃÒ¡ÒÃÍÍ¡¨Ò¡ ListView
lvwViewer.RemoveItem sRow
End If
End If
End If
Next
End Sub
' â»Ãá¡ÃÁÂèÍÂ㹡ÒÃàÅ×Í¡ä¿Åì·Ñé§ËÁ´
Private Sub cmdSelectALL_Click()
Dim sRow As Integer
On Error Resume Next
For sRow = 0 To lvwViewer.ListCount - 1
lvwViewer.ListIndex = sRow
lvwViewer.Selected(sRow) = True
Next
lvwViewer.ListIndex = 0
End Sub
' â»Ãá¡ÃÁÂèÍÂ㹡ÒÃäÁèàÅ×Í¡ä¿Åì·Ñé§ËÁ´
Private Sub cmdDeselectALL_Click()
On Error Resume Next
Dim sRow As Integer
For sRow = 0 To lvwViewer.ListCount - 1
lvwViewer.ListIndex = sRow
lvwViewer.Selected(sRow) = Not lvwViewer.Selected(sRow)
Next
lvwViewer.ListIndex = 0
End Sub
' â»Ãá¡ÃÁÂèÍÂ㹡ÒÃáÊ´§¼Åä¿Åì áÅÐ â¿Åà´ÍÃì·Ñé§ËÁ´
Private Sub mnuViewALL_Click()
lvwViewer.Clear
fraViewer.Caption = ""
Call ViewFiles
Call ViewFolders
End Sub
' â»Ãá¡ÃÁÂèÍÂ㹡ÒÃáÊ´§¼Å੾ÒЪ×èÍä¿Åì
Private Sub mnuViewFiles_Click()
lvwViewer.Clear
fraViewer.Caption = ""
Call ViewFiles
End Sub
' â»Ãá¡ÃÁÂèÍÂ㹡ÒÃáÊ´§¼Å੾ÒÐâ¿Åà´ÍÃì
Private Sub mnuViewFolders_Click()
lvwViewer.Clear
fraViewer.Caption = ""
Call ViewFolders
End Sub
|
- àÇÅÒ·ÕèÊÑè§ãËéâ»Ãá¡ÃÁ·Ó§Ò¹áÅéÇäÁèÁÕ¼Åã´æà¡Ô´¢Öé¹ ãËéÅͧ¡àÅÔ¡¤ÓÊÑè§ On Error Resume Next ·Õèâ»Ãá¡ÃÁÂèÍ ViewFiles ËÃ×Í ViewFolders ÍÍ¡¡è͹¹èФÃѺ ËÒ¡ä´é Error
Run-Time Error '429' ActiveX component can't create object
- ¡ÒÃá¡éä¢ ãËéä»·Õè Start --> Run áÅоÔÁ¾ì¤ÓÊÑè§ regsvr32 "c:\windows\system32\scrrun.dll" ... ¡ç¨ÐªèÇÂá¡é䢻ÑËÒä´é¤ÃѺ¼Á
Conclusion: ÊÓËÃѺÀÒ¤ 1 ¡çàÍÒäÇéà·èÒ¹Õé¡è͹¤ÃѺ¾Õè¹éͧ ÀÒ¤µèÍ仡ç¨Ðà»ç¹¡ÒùÓàÊ¹Í ´éÇ¡Òýѧâ»Ãá¡ÃÁÍÑ¹ÊØ´»ÃÐàÊÃÔ°¢Í§àÃÒà¢éÒä»ÊÙèÃкº ËÒ¡àÇÅÒã´·ÕèàÊÕº¾Ç¡ Remove Drive à¢éÒÁÒ â»Ãá¡ÃÁ¡ç¨Ðâ¼Åè¢Öé¹ÁÒ·Ó§Ò¹ à¾×èÍãËéàÃÒ (ËÃ×ͼÙéãªé§Ò¹) ä´éàÅ×͡ź ËÃ×Í ¡Ó¨Ñ´ä¿ÅìÍѹäÁè¾Ö§»ÃÒö¹ÒÍ͡仨ҡä´Ã¿ì¡è͹·ÕèÇÒÂÃéÒ - äÇÃÑÊÁѹ¨ÐàÃÔèÁµé¹·Ó§Ò¹ä´é ... äÁèµéͧ¤ÍÂÁÒ§éÍâ»Ãá¡ÃÁ¡Ó¨Ñ´äÇÃÑÊ«èÐãËéÂØè§ÂÒ¡ áÅÐ ÊÔé¹à»Å×ͧ
|