Показать полную графическую версию : [решено] Выполнение действий при подключении/отключении флешки
Iruta-san
03-06-2010, 14:06
Добрый день! Задача такая: при подключении определенной флешки должно происходить подключение сетевого диска. Это я умею, это понятно. А вот как сделать так, чтобы скрипт висел в памяти до тех пор, пока флешка подключена, а после ее отключения - отрубал сетевой диск(и, возможно, выгружался из памяти)?
Другими словами: как можно с помощью скрипта идентифицировать флешку, а затем периодически проверять, подключена ли она еще?
как можно с помощью скрипта идентифицировать флешку »
подключенная флешка представляет собой логический диск
например, проверять свободное место на ней или ее размер
эту процедуру в цикл
в случае невозможности выполнения функции отключать сетевой диск и далее
и, возможно, выгружался из памяти »
легко
Exit.
Iruta-san
18-06-2010, 17:41
Надо теперь разрешить следующее:
Решил делать проверку в скрипте на наличие самого себя. Примерно так:
:checkAgain
SET checkfile="\Почта.exe"
IF NOT EXIST %checkfile% (goto notExist) ELSE @echo ok!
::пауза 30 сек
ping -n 1 -w 3000 192.0.0.254 > nul
goto checkAgain
:notExist
@echo Выдернули!
pause
но когда флешку выдергиваю, при очередной проверке скрипт просто самоуничтожается и, судя по всему, перед этим нифига не делает...
Как поправить?
ЗЫ: поправочка, пока что оно проверяет не само себя, но валяется там же, в корне.
Iruta-san
21-06-2010, 15:58
Проблему решил обходным путем. Поскольку скрипт все равно предполагается использовать в виде скомпиленного в ехе-шник, то именно в этом виде я и решил его проверить. Все прошло так, как и должно, исполняемый файл целиком загрузился в память и оттуда работает даже после извлечения флешки.
Буду писать скрипт дальше.
Тем не менее, буду благодарен, если тыкнете меня носом в топики, где описаны другие возможности определения флешки.
ЗЫ: инфа для нубов вроде меня: компилировал программой Bat to Exe Converter от Faith Kodak
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.