Форум на SafelyRemove.com
http://safelyremove.com/forumrus/

Кнопка на бар Total Commander
http://safelyremove.com/forumrus/viewtopic.php?f=5&t=269
Страница 1 из 2

Автор:  Gheorgich [ Ср фев 10, 2010 3:55 pm ]
Заголовок сообщения:  Кнопка на бар Total Commander

Если делать кнопку методом перетаскивания, то получится вот что:
Код:
TOTALCMD#BAR#DATA
"C:\Program Files\USB Safely Remove\USBSafelyRemove.exe"

C:\Program Files\USB Safely Remove\USBSafelyRemove.exe
USBSafelyRemove
C:\Program Files\USB Safely Remove\

-1

Что поменять, чтобы не выезжало окно программы, а сразу извлекалась флешка?

Автор:  Anton [ Ср фев 10, 2010 5:58 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Для этого Вам нужно в настройки кнопки тулбара добавить специальную команду:
Код:
"C:\Program Files\USB Safely Remove\usr.exe" stop -n "Имя устройства"

где: "Имя устройства" - имя устройства, которое отображается в меню остановки, но без буквы диска, например, "Kingston DT Elite HS 2.0 USB Device".

Изображение

Автор:  Gheorgich [ Чт фев 11, 2010 9:57 am ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Спасибо. Но с именем получается, что под каждую флешку нужно затачивать отдельную кнопку. Почитал описания команд, получилось сделать кнопку под диск F:
Код:
TOTALCMD#BAR#DATA
"C:\Program Files\USB Safely Remove\usr.exe" stop -d f:"

C:\Program Files\USB Safely Remove\USBSafelyRemove.exe
USBSafelyRemove
C:\Program Files\USB Safely Remove\

-1

Есть какая-нибудь возможность сделать кнопку не под конкретный диск, а для любой флешки? И как-нибудь избежать мелькания консоли?

Автор:  Anton [ Пт фев 12, 2010 3:49 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

В принципе, можно было бы написать небольшой скриптик, используя имеющиеся команды командной строки USR, но, по большому счету, этого делать не стоит. Вместо этого нужно добавить в командную строку USR еще одну команду "Остановить все видимые в меню устройства". В следующей версии программы мы обязательно добавим такую команду. Тогда будет гораздо проще добавить кнопку в тулбар Тотал Коммандера с одной единственной командой останавливать все устройства, отображаемые в меню.

А если Вам очень хочется иметь подобный скрипт, то попробуйте написать его сами. Это очень даже интересно. :) Если получиться, выложите его на форуме. Мы будем Вам очень признательны. Возможно даже, кому-то он пригодится, до выхода новой версии программы.

Для создания скрипта можно поиграть со следующими командами:
Цитата:
"usr list" Displays all hot-plug devices
"usr list -s" Displays only showed in the stop menu devices
Они возвращают список устройств, который можно было бы использовать в скрипте для остановки устройств.

И в завершение, какие еще команды в командной строке USR Вам бы хотелось иметь? Возможно, мы добавили бы и их при выпуске новой версии программы.

Спасибо за сообщение.

Автор:  Gheorgich [ Пт фев 12, 2010 6:03 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Лично мне хотелось бы, чтобы как-то подавлялось окно командной строки, команды проходили бы скрытно. Не знаю, насколько это возможно.
Я, конечно, попробую со скриптом. Но знаний не хватает. Все мои мучительные попытки написать путный скрипт почему-то заканчиваются эпик фейлом и обращением за помощью к друзьям. Не рожден я для этого, видимо.

Автор:  gora [ Ср ноя 10, 2010 3:46 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

usr.exe автономная утилита или она не сможет работать без установленной основной программы?

Автор:  Anton [ Вс ноя 14, 2010 7:05 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Цитата:
usr.exe автономная утилита или она не сможет работать без установленной основной программы?

Эта утилита может работать автономно, но при выгруженном сервисе не сможет выполнять некоторые команды, например вернуть устроуство обратно.

Автор:  Aganel [ Пн янв 03, 2011 4:33 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Приветствую!
Вчера поставил демо-версию вашей программы. Программа очень понравилась, удобная, выглядит симпатично. Думаю на днях купить её.

Хотел написать по поводу кнопки. Я для себя сделал так:
Команда: ссылка на бат-файл
Параметр: %P
Чтобы консольное окошко глаза не мозолило, поставил галочку "в свёрнутом виде".
Иконку пришлось взять с красным кружком, так как в USBSafelyRemove.exe иконки извлечения не оказалось :roll:

В бат-файле написал:
Код:
start "USB Removing %~d1" /MIN "c:\Program Files (x86)\USB Safely Remove\usr.exe" stop -d %~d1
Таким образом, запускаем usr в отдельном процессе, и передаём ему букву текущего каталога. Без start иногда извлекать не хочет, говорит, что диск занят cmd и usr.


Для случая, когда диск занят каким-то процессом пришлось создать второй батник (и вторую кнопку)
Код:
@echo off
"c:\Program Files (x86)\USB Safely Remove\usr.exe" wholocks -d %~d1
pause
Сначала я хотел всё реализовать в одном батнике (и производить нужные действия по errorlevel), но к сожалению, диск в таком случае не извлекается и сообщает, что занят процессом usr.exe. Не совсем понял пока, как это обойти.

Автор:  Aganel [ Пн янв 03, 2011 5:13 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Разобрался, почему не извлекался диск: у кнопки путь запуска был пустой, а значит приравнивался к текущему каталогу (на извлекаемом диске).
Батник, который извлекает устройство и завершает работу в случае успеха, выводит код ошибки или список программ, блокирующих устройство, в случае неудачи:
Код:
@echo off
"c:\Program Files (x86)\USB Safely Remove\usr.exe" stop -d %~d1
echo.

if %errorlevel%==0 goto :EOF
if %errorlevel%==1 goto notfound
if %errorlevel%==2 goto cantstop
goto othererror

:notfound
pause
goto :EOF

:cantstop
echo Невозможно остановить устройство с буквой диска %~d1. Дополнительная информация:
"c:\Program Files (x86)\USB Safely Remove\usr.exe" wholocks -d %~d1
pause
goto :EOF

:othererror
echo При извлечении устройства с буквой диска %~d1 произошла ошибка с номером %errorlevel%
pause

Единственное оставшееся неудобство: окошко с сообщением об ошибке остаётся свёрнутым.

P. S. Сделал всплывающее окно с помощью второго батника. Не совсем красиво, зато работает :) Если интересно, могу привести здесь код.

Автор:  Anton [ Чт янв 06, 2011 4:44 am ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Здравствуйте, Aganel!

Спасибо за пример.

Цитата:
Сделал всплывающее окно с помощью второго батника. Не совсем красиво, зато работает Если интересно, могу привести здесь код.
Думаю, это будет интересно многим пользователям программы, поэтому приведите, пожалуйста, код.

Автор:  Aganel [ Пт янв 07, 2011 7:43 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Код:
@echo off
set USREXE=c:\Program Files (x86)\USB Safely Remove\usr.exe
rem Буква диска извлекаемого устройства
set DRVLTTR=%~d1
rem Путь к файлу alert.bat
set ALERTPATH=%~dp0

"%USREXE%" stop -d %DRVLTTR%

if %errorlevel%==0 goto :EOF

set ERRORDESC=При извлечении устройства с буквой диска %DRVLTTR% произошла ошибка с номером %errorlevel%.
set GETINFO=

if %errorlevel%==1 set ERRORDESC=Устройство с буквой диска %DRVLTTR% не найдено в списке доступных для извлечения устройств.
if %errorlevel%==2 set ERRORDESC=Устройство не может быть остановлено.
if %errorlevel%==3 set ERRORDESC=Неверный синтаксис команды.
if %errorlevel%==4 set ERRORDESC=Неизвестная команда.
if %errorlevel%==5 set ERRORDESC=Невозможно найти процессы блокирующие устройство (или устройство уже свободно).
if %errorlevel%==6 set ERRORDESC=Произошла техническая ошибка во время поиска заблокировавших устройство процессов.

rem Если устройство не может быть остановлено, выводим список блокирующих его процессов
if %errorlevel%==2 set GETINFO="%USREXE%" "wholocks -d %DRVLTTR%"

start /D "%ALERTPATH%" alert.bat "%ERRORDESC%" %GETINFO%

alert.bat
Код:
@echo off
rem Выводит параметр 1 без кавычек, запускает выполняемый файл 2 с параметрами 3 (если указаны)
rem и ждёт нажатие любой клавиши.
echo %~1
echo.
if not "%~2"=="" "%~2" %~3
echo.
pause

Автор:  gora [ Ср мар 02, 2011 7:32 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Anton писал(а):
Для создания скрипта можно поиграть со следующими командами:
Цитата:
"usr list" Displays all hot-plug devices
"usr list -s" Displays only showed in the stop menu devices

На обе команды получаю ошибку:
Цитата:
Unexpected error: Exception - Call InitUSBDeviceList before
Zentimo 1.1.6.1090, Win7 SP1 (x64)

Автор:  Anton [ Пт мар 04, 2011 2:02 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Да, действительно, эта команда не работает в Zentimo. Большое спасибо за сообщение об ошибке. Исправим в следующей версии.

В USB Safely Remove работает.

Автор:  gora [ Пт мар 04, 2011 2:07 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Anton писал(а):
В USB Safely Remove работает.

Ну не возвращаться же из-за этого на USR! :)
Подождем новую версию, у меня не горит...

Автор:  Anton [ Пт мар 04, 2011 2:24 pm ]
Заголовок сообщения:  Re: Кнопка на бар Total Commander

Цитата:
Цитата:
В USB Safely Remove работает.
Ну не возвращаться же из-за этого на USR!

Я это к тому, что форум сей для USB Safely Remove и чтобы не сбивать пользователей с толку. :)

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/