Страница 1 из 2

Кнопка для запуска приложения с флешки

Добавлено: Вс окт 27, 2013 18:21
laburj
Подскажите пожалуйста с кнопкой
Ситуация:
часто подключаю разные флешки, буква диска которым присваивается произвольно. Необходимо запускать программы по одному и тому же адресу, например ?:\aaa\bbb\ccc\ddd.exe, где "?" - буква диска, которая только и меняется.
Хотелось бы кнопку на панели инструментов, которая позволяла бы открывать программу по заданному пути, где буква диска бралась из открытой левой вкладки.
Спасибо

Добавлено: Вс окт 27, 2013 18:48
Flasher
laburj писал(а):где буква диска бралась из открытой левой вкладки
Какое-то извращение. Это так принципиально?
Можно перебрать все внешне подключённые диски и в них искать нужное. Либо брать последнюю букву.
И это, конечно, не из области общих вопросов..

Добавлено: Вс окт 27, 2013 18:54
laburj
Flasher писал(а):Какое-то извращение. Это так принципиально?
Можно перебрать все внешне подключённые диски и в них искать нужное. Либо брать последнюю букву.
И это, конечно, не из области общих вопросов..
Если можно так, то было бы гораздо удобнее, я просто предположил, что взять букву диска из пути текущей вкладки будет проще

Добавлено: Вс окт 27, 2013 19:00
Flasher
laburj писал(а):Если можно так
Так - это как?
laburj писал(а): из пути текущей вкладки
Написано было:
laburj писал(а):из открытой левой вкладки
Левая ещё не значит текущая или активная.

Добавлено: Вс окт 27, 2013 19:07
laburj
Flasher писал(а):Так - это как?
В идеале так:
Flasher писал(а):Можно перебрать все внешне подключённые диски и в них искать нужное.
Flasher писал(а):Левая ещё не значит текущая или активная.
Согласен, признаю свою неточность

Добавлено: Вс окт 27, 2013 19:18
Flasher
laburj писал(а):В идеале так:
Т.е. брать первый попавшийся внешний диск, а не последний?

Добавлено: Вс окт 27, 2013 19:25
laburj
Да, первый попавшийся, у меня их обычно не больше 3х и одновременно не бывает подключенных флешек, где есть программы, которые таким способом я хочу запустить.

Добавлено: Вс окт 27, 2013 19:49
Flasher

Код: Выделить всё

'============================================================
' Запуск первой существующей программы из внешнего накопителя

' Параметр: <Путь без имени диска>
' Пример:   "\ProgramFolder\Program.exe"
'============================================================
If WScript.Arguments.Count > 0 Then
  Path = WScript.Arguments(0)
  With CreateObject("Scripting.FileSystemObject")
    For Each D In .Drives
      If D.DriveType = 1 Then
        If .FileExists(D & Path) Then
          CreateObject("WScript.Shell").Run """" & D & Path & """"
          Exit For
        End If
      End If
    Next
  End With
End If

Добавлено: Вс окт 27, 2013 20:03
Serge Yolkin
laburj
Если и Тотал запускать с той же флэшки, то диск будет называться %COMMANDER_DRIVE%

Добавлено: Вс окт 27, 2013 20:06
Flasher
Serge Yolkin
TYVM, КЭП.
Ясно же, что флешек много, а Тотал уже запущен..

Добавлено: Вс окт 27, 2013 21:43
CaptainFlint
[mod="CaptainFlint"]Перенесено в Автоматизацию.[/mod]

Добавлено: Вс окт 27, 2013 22:07
laburj
Flasher, большое спасибо! Всё работает!

Re: Кнопка для запуска приложения с флешки

Добавлено: Вс ноя 24, 2013 11:23
Моторокер
laburj писал(а):Необходимо запускать программы по одному и тому же адресу, например ?:\aaa\bbb\ccc\ddd.exe, где "?" - буква диска, которая только и меняется.
Если вкладка эта активная, почему сразу так не запускать?
\aaa\bbb\ccc\ddd.exe

Добавлено: Вс ноя 24, 2013 12:46
MVV
Можно запускать батником run_from_label.bat:

Код: Выделить всё

@echo off
if -%1==- echo Parameters: ^<drive_label^> <^path_to_run^> [^<parameters^>]
set drive_letter=
for %%d in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
	echo "*" | label %%d: 2>nul | find /I "%~1" >nul
	if not errorlevel 1 (
		start "" "%%d:\%~2" %3 %4 %5 %6 %7 %8 %9
		goto :EOF
	)
)
В кнопке тулбара прописать (на примере флешки с меткой MY_FLASH для запуска программы \Program\Program.exe при условии, что батник лежит в папке тотала):

Код: Выделить всё

Команда: "%COMMANDER_PATH%\run_from_label.bat"
Параметры: MY_FLASH Program\Program.exe
В батнике в скобках команды for задаются буквы дисков, для которых метка сравнивается с заданной. Можно убрать ненужные буквы и изменить порядок букв, поставив наиболее вероятные буквы раньше. Сравнение производится нестрогое, т.е. ищется первая буква диска, метка которой содержит указанный текст.

Добавлено: Вс ноя 24, 2013 18:53
Flasher
MVV
Думаешь, твой батник окажется быстрее моего скрипта?
Сократи хотя бы список через fsutil fsinfo drives.