Что нового

Бекап файла на флешку

S3R3N1TY

Новичок
Сообщения
7
Репутация
0
Версия AutoIt: v3.3.8.1

Описание:
Привет друзья.

Есть такая задача.
Хочу сделать автоматический бекап одного файла с жесткого диска на внешний носитель (флешка).
Тоесть чтобы просто автоматом копировался на флешку.
Но тут возникает вопрос: если флешек вставлено несколько, то должен быть выбор.
Значит пользователь должен еще указать после запуска скрипта куда копировать.

Вот вопрос - как лучше это сделать ?
Спасибо.

Примечания:
Я вижу это так:
Пользователь запускает скрипт и видит окошко где выбирает на какую флешку скопировать файл и нажимает копировать.
 

sngr

AutoIT Гуру
Сообщения
1,011
Репутация
409
Есть возможность копировать по событию втыкание нужной флешки, что-то вроде этого. Если тебе это надо демонстрируй
Код:
Run(@ComSpec &' /k wmic path Win32_USBHub');требует прав админа

с всунутой флешкой.
 
Автор
S

S3R3N1TY

Новичок
Сообщения
7
Репутация
0
Спасибо.

Попробовал с всунутой флешкой и без нее.
После отработки скрипта появляется черное окошко и в нем записи,
пытаюсь понять как это может помочь.
 

sngr

AutoIT Гуру
Сообщения
1,011
Репутация
409
На чёрном экране тебе явились величественный чёрные слова, прославляющие чёрного властелина и его чёрное войско. Готов ли ты вступить в чёрное воинство дабы распространить чёрное владычество по всей земле? Если чёрная сила велика в тебе, запускай с всунутой флешкой
Код:
run('wmic /output:clipboard path Win32_USBHub where name="запоминающее устройство для usb"')
Результаты идут в буфер обмена, вставляй их сюда. Этим ты приблизишь наступление великого чёрного дня.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
:
Спасибо. Я вставил флэшку и теперь у меня буфер обмена с непонятными записями, пытаюсь разобраться
 
Автор
S

S3R3N1TY

Новичок
Сообщения
7
Репутация
0
В буфере было пусто. Я скопировал и вставил что было в демоническом окошке

Availability Caption ClassCod
e ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName CurrentAl
ternateSettings CurrentConfigValue Description
DeviceID ErrorCleared ErrorDescript
ion GangSwitched InstallDate LastErrorCode Name
NumberOfConfigs NumberOfPorts PNPDeviceID
PowerManagementCapabilities PowerManagementSupported ProtocolCo
de Status StatusInfo SubclassCode SystemCreationClassName SystemName USBV
ersion
Запоминающее устройство для USB 0
FALSE Win32_USBHub
Запоминающее устройство для USB USB\VID_8564&PID_1000\HLYGK3AJ
Зап
оминающее устройство для USB USB\VID_8564&PID_1
000\HLYGK3AJ
OK Win32_ComputerSystem VYACHESLAEV

Корневой USB-концентратор 0
FALSE Win32_USBHub
Корневой USB-концентратор USB\ROOT_HUB\4&10C3B2A4&0

Корневой USB-концентратор USB
\ROOT_HUB\4&10C3B2A4&0
OK Win32_ComputerSystem
VYACHESLAEV
Составное USB устройство 0
FALSE Win32_USBHub
Составное USB устройство USB\VID_05D5&PID_8001\5
&192F622A&0&2
Составное USB устройство
USB\VID_05D5&PID_8001\5&192F622A&0&2
OK Win32_ComputerSyste
m VYACHESLAEV
Корневой USB-концентратор 0
FALSE Win32_USBHub
Корневой USB-концентратор USB\ROOT_HUB\4&26FCA6D4&0

Корневой USB-концентратор USB
\ROOT_HUB\4&26FCA6D4&0
OK Win32_ComputerSystem
VYACHESLAEV
Составное USB устройство 0
FALSE Win32_USBHub
Составное USB устройство USB\VID_09DA&PID_9090\5
&50ADEA6&0&1
Составное USB устройство
USB\VID_09DA&PID_9090\5&50ADEA6&0&1
OK Win32_ComputerSyste
m VYACHESLAEV
Корневой USB-концентратор 0
FALSE Win32_USBHub
Корневой USB-концентратор USB\ROOT_HUB\4&37690C5A&0

Корневой USB-концентратор USB
\ROOT_HUB\4&37690C5A&0
OK Win32_ComputerSystem
VYACHESLAEV
Корневой USB-концентратор 0
FALSE Win32_USBHub
Корневой USB-концентратор USB\ROOT_HUB\4&574D1E&0

Корневой USB-концентратор USB
\ROOT_HUB\4&574D1E&0
OK Win32_ComputerSystem
VYACHESLAEV
Корневой USB-концентратор 0
FALSE Win32_USBHub
Корневой USB-концентратор USB\ROOT_HUB20\4&172B99F8
&0
Корневой USB-концентратор USB
\ROOT_HUB20\4&172B99F8&0
OK Win32_ComputerSystem
 

sngr

AutoIT Гуру
Сообщения
1,011
Репутация
409
Код:
$oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$objService = ObjGet("WinMgmts:\\.\root\cimv2")
$objEventSource = $objService.ExecNotificationQuery _
            ("SELECT * FROM __InstanceCreationEvent " & _
             "WITHIN 5 WHERE (TargetInstance ISA 'Win32_USBHub' " & _
              "AND TargetInstance.deviceid='USB\\VID_8564&PID_1000\\HLYGK3AJ') ")
While 1
  $objEvent = $objEventSource.NextEvent
ExitLoop
WEnd
MsgBox(0,'','1')
$oMyError = 0
Func MyErrFunc()
    MsgBox(4096, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
            "err.description is: " & @TAB & $oMyError.description & @CRLF & _
            "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
            "err.number is: " & @TAB & hex($oMyError.number, 8) & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
            "err.source is: " & @TAB & $oMyError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oMyError.helpcontext)
    Exit 1
EndFunc   ;==>MyErrFunc

Вот. Определяет что всунута эта конкретная флешка.
 
Автор
S

S3R3N1TY

Новичок
Сообщения
7
Репутация
0
Спасибо. Я в итоге реализовал свою задачу через GUI- пользователь сам выбирает на какую флешку ему скопировать.
 
Верх