Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите в создании BATника , который бы завершал сеанс при отключении USB устройства (http://forum.oszone.net/showthread.php?t=283153)

inostranec007 04-06-2014 17:27 2359903

Помогите в создании BATника , который бы завершал сеанс при отключении USB устройства
 
CMD/BAT помогите в создании BATника , который бы завершал сеанс при отключении USB устройства. Задумка такая, что бы при извлечении устройства выполнялось shutdown -l. Как отследить извлечение в том случае если в журнал Windows не производится запись о событии . Заранее спасибо.

mwz 04-06-2014 21:25 2360021

inostranec007, конкретного USB-устройства?

USB-флэшки? USB-винчестера? USB Bluetooth? USB WiFi? USB-мыши? Клавиатуры?

inostranec007 05-06-2014 10:10 2360208

Желательно любого устройства пдключаемого через usb. А вообще есть такая штука, как Рутокен, вот его как раз и надо.

mwz 05-06-2014 12:09 2360257

inostranec007, как вариант -- установка утилиты USB Safely Remove (смотрим пункт "Program autorun on device connection\disconnection", или "Автозапуск программ при подключении\отключении устройства" в русской версии сайта).

Для отслеживания подключения и отключения USB-устройств нужна обработка события Windows WM_DEVICECHANGE. Пример на Delphi приведён на http://delphiru.ru/winapi/553-hook-usb-device . Думаю что CMD-файл здесь не справится, а вот VB-скрипт должен. Но может знатоки меня и поправят.

gora 05-06-2014 21:27 2360493

usr.exe - бесплатная консольная утилита из состава USB Safely Remove

Код:

@Echo Off
:Loop0
Set cnt=0
usr.exe List>temp.txt
For /F "tokens=* delims=" %%i In (temp.txt) Do Set /a cnt += 1& Echo %%i
:Loop1
Echo %cnt%
Set cntN=0
Ping -n 3 localhost>Nul
usr.exe List>temp.txt
For /F "tokens=* delims=" %%i In (temp.txt) Do Set /a cntN += 1
If %cnt%==%cntN% GoTo :Loop1
If %cnt% LSS %cntN% (
        Echo USB device is connected 
        Ping -n 10 localhost>Nul
        GoTo
:Loop0
)

If %cnt% GTR %cntN% (
        Echo USB device is disconnected 
        Ping -n 10 localhost>Nul
        GoTo
:Loop0
)

pause > NUL



Время: 20:45.

Время: 20:45.
© OSzone.net 2001-