Как осуществить автоматический перенос (копирование с последующим удалением) файлов с флешек и иных съёмных носителей информации (USB-устройств, карт памяти, внешних жёстких дисков, CD/DVD/Blu-Ray приводов, FDD (Floppy) устройств, сетевых, виртуальных, RAM-дисков и др.) на стационарный либо сетевой диск ) в ОС Microsoft Windows?
1.
Скачиваем на компьютер программу
FDFRun.
2.
Устанавливаем программу в папку: "
C:\Program Files\VRCP Soft\FDFRun\".
3.
Скачиваем на компьютер программу
FDFSpy.
4.
Устанавливаем программу в папку: "
C:\Program Files\VRCP Soft\FDFSpy\".
5.
Скачиваем на компьютер программу
AutoKFD.
6.
Устанавливаем программу в папку: "
C:\Program Files\VRCP Soft\AutoKFD\".
7.
Настройки установленных программ будут примерно такие:
( маски для файлов в FDFSpy и AutoKFD обязательно должны быть одинаковыми! )
8.
Скачиваем на компьютер дополнительную программу
USBOff.zip.
9.
Распаковываем файл "
rmdrv64.exe" в папку: "
C:\Program Files\VRCP Soft\FDFRun\".
( для 32-битной операционной системы распаковываем туда файл - "rmdrv32.exe" )10.
Создаём в папке "
C:\Program Files\VRCP Soft\FDFRun\" файл "
autorun.vbs":
( путь к файлу "autorun.vbs" прописываем в настройках программы "FDFRun", см. выше )( в программе "FDFRun" в качестве передаваемого параметра указываем "%", см. выше )Содержимое файла "
autorun.vbs" будет примерно такое:
Option Explicit On Error Resume Next Dim WSHShell, PsArgs, PsWMI, PsDrv, PsWait Set WSHShell = WScript.CreateObject("WScript.Shell") Set PsArgs = WScript.Arguments Set PsWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2") PsDrv = UCase(Trim(PsArgs(0))) If Len(PsDrv) > 0 Then PsDrv = Trim(Left(PsDrv,1))
If Len(PsDrv) = 1 Then If Asc(PsDrv) > 64 And Asc(PsDrv) < 91 Then WSHShell.Run """" & "C:\Program Files\VRCP Soft\FDFSpy\FDFSpy.exe " & """" & PsDrv
Do WScript.Sleep 100 PsWait = 0 If PsWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'fdfspy.exe'").Count > 0 Then PsWait = 1 Loop Until PsWait = 0 WSHShell.Run """" & "C:\Program Files\VRCP Soft\AutoKFD\AutoKFD.exe " & """" & PsDrv
End If End If
Set PsArgs = Nothing Set PsWMI = Nothing Set WSHShell = Nothing WScript.Quit 0
|
Если необходимо
автоматически извлекать съёмный диск, то содержимое такое:
( для 32-битной операционной системы заменяем rmdrv64.exe на rmdrv32.exe )Option Explicit On Error Resume Next Dim WSHShell, PsArgs, PsWMI, PsDrv, PsWait Set WSHShell = WScript.CreateObject("WScript.Shell") Set PsArgs = WScript.Arguments Set PsWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2") PsDrv = UCase(Trim(PsArgs(0))) If Len(PsDrv) > 0 Then PsDrv = Trim(Left(PsDrv,1))
If Len(PsDrv) = 1 Then If Asc(PsDrv) > 64 And Asc(PsDrv) < 91 Then WSHShell.Run """" & "C:\Program Files\VRCP Soft\FDFSpy\FDFSpy.exe " & """" & PsDrv
Do WScript.Sleep 100 PsWait = 0 If PsWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'fdfspy.exe'").Count > 0 Then PsWait = 1 Loop Until PsWait = 0 WSHShell.Run """" & "C:\Program Files\VRCP Soft\AutoKFD\AutoKFD.exe " & """" & PsDrv
Do WScript.Sleep 100 PsWait = 0 If PsWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'autokfd.exe'").Count > 0 Then PsWait = 1 Loop Until PsWait = 0 WSHShell.Run """" & "C:\Program Files\VRCP Soft\FDFRun\rmdrv64.exe " & """" & PsDrv
WScript.Sleep 100 MsgBox " Съёмный носитель информации <" & PsDrv & "> успешно обработан и извлечён! "
End If End If
Set PsArgs = Nothing Set PsWMI = Nothing Set WSHShell = Nothing WScript.Quit 0
|
P.S.: Некоторые антивирусные средства могут мешать извлечению съёмного носителя информации (флешки и т.п.), т.к. временно блокируют носитель при осуществлении проверки его содержимого, после появления его в системе. Соответственно, чтобы флешка всегда извлекалась нормально, необходимо в антивирусной программе отключить проверку съёмных носителей информации, либо добавить соответствующие исключения.