[WFX] VirtualPanel - временная панель для ТК (Unicode)

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

В созданную папку на виртуальной панели, бросаю три mp3-файла:
\\\Virtual Panel\123\Парадайс - Ты Мой.mp3
\\\Virtual Panel\123\Разбитые сердца ft. Slon.mp3
\\\Virtual Panel\123\Я робот.mp3
Возвращаюсь сюда \\\Virtual Panel\
Жму на папке \123 клавишу F9 (утилита ChooseMediaPlayer (TC2MP), "Играть в плеере").
Получаю:
There are no media files available in selected list.
Плеер не запускается.

Есть ли решение? 0.1% моей уверенности вынудил отписаться.

Также выделенные файлы внутри папки не отправляются плееру посредством данной утилиты:(
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Так он и будет передавать в плейер путь
\\\Virtual Panel\123\Парадайс - Ты Мой.mp3
А плейер, разумеется, этот файл не найдет, потому что "не знает", что такое \\\Virtual Panel - об этом знает только Тотал.
Попробуй дважды щелкнуть на этом файле (точнее, на его ссылке в Virtual Panel) - плейер по умолчанию откроется без вопросов.
Попробуй также создать плейлист своих файлов (примеры в справке к Virtual Panel), и запускать этот плейлист тем же двойным щелчком или Энтером. Или напиши скрипт, который играет переданный файл. В скрипте командой exec запускай свой плейер с переданным параметром.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Значит так. Вахмурка все правильно сказал, я кое-что дополню.

Пока Гислер не реализует поддержку параметров %P, %L и им подобным, передавать файлы с виртуальной панели внешним приложениям не получится. Да, о том, что такое \\\Virtual Panel, знает только ТК, но он партизан.

Далее, виртуальную папку передавать внешней программе - еще большее безумие, т.к. даже если бы ТК передавал внешним программам правильные пути, понятие виртуальной папки не существует вне виртуальной панели, т.е. понятие реального пути для нее отсутствует. Передать реальный путь можно лишь для физически существующей папки, для которой в виртуальной панели создана ссылка (командой <add).

Можно запускать файлы ентером - это да. Также можно определить внутреннюю ассоциацию для музыкального файла и передавать его проигрывателю через контекстное меню файла (или для папки, если это ссылка на физическую папку). Но тут опять ограничение - в файловых системах меню внутренних ассоциаций не работает при множественном выделении.

Если нужно кидать плейеру всю папку сразу, можно написать скрипт и передавать ему путь к папке (или запускать его из папки). Например, скрипт может экспортировать список файлов из папки во временный плейлист (расширение файла списка может быть, например, m3u), используя команду <export, и передавать список проигрывателю, используя команду <exec (при этом нужно куда-нибудь внутри VP закинуть экзешник проигрывателя и запускать его). Как только панель инструментов ТК будет позволять запускать файлы напрямую из временной панели, можно будет добавлять на нее кнопки для запуска скриптов.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Итак,

Virtual Panel 1.0.0.550: 8)
+ изменен рекомендуемый базовый адрес модуля
+ VP может выполнять скрипты, посланные ТК посредством сообщения WM_COPYDATA
+ прилагается утилита VPBatch для выполнения в ТК внешних скриптов
* запрет одновременного запуска нескольких обработчиков событий таймера (пропуск события, если предыдущее еще выполняется)
* при выгрузке модуля таймеры отключаются и ожидается завершение работы обработчиков
* ошибка изменения пути к лог-файлу из диалога настроек
* неверная рабочая папка при запуске приложений из ссылки на физический каталог
* другие исправления и оптимизации


С учетом нововведений наконец можно начинать создавать панельку инструментов для выполнения команд и скриптов VP. Думаю, после составления набора более-менее полезных кнопок можно будет включить панель в дистрибутив, или прикрепить к первому посту темы. Вопросы и предложения как всегда приветствуются. Начнем с кнопки Добавить на виртуальную панель:

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

VPBatch.exe ^exec { ^ifok {Добавить ссылку на %N?} { ^add %N %P%N } {} }
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV писал(а):Код:
VPBatch.exe ^exec { ^ifok {Добавить ссылку на %N?} { ^add %N %P%N } {} }
Приходится ставить кавычки "%P%N"

Хм, но как-то не всегда. Что-то "прочихалось" :(
Сделал две кнопки, с кавычками и без. Понаблюдаю.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

GGS писал(а):
MVV писал(а):Код:
VPBatch.exe ^exec { ^ifok {Добавить ссылку на %N?} { ^add %N %P%N } {} }
Приходится ставить кавычки "%P%N"

Хм, но как-то не всегда. Что-то "прочихалось" :(
Сделал две кнопки, с кавычками и без. Понаблюдаю.
Обычно ТК сам ставит кавычки вокруг %P%N и %N, если считает нужным (именно потому пришлось строку вопроса взять в скобки, а не просто в кавычки), так что кавычки не нужны.

Посмотри, правильно ли будет определяться рабочая папка. Кстати, нужно в VPBatch поправить, чтоб не ставила папку принудительно корневую, если папка не задана явно - я уже позже добавил хранение последней прочитанной директории. Пока же можно задавать пустую папку параметром /w"":

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

VPBatch.exe /w"" ^exec { ^ifok {Добавить ссылку на %N?} { ^add %N %P%N } {} }
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Вопросы и предложения как всегда приветствуются.
Да как всегда, моя больная тема - плееры. Добавить выделенные в ВП в плейлист плеера (Winamp, Media Player Classic)...
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV писал(а):Посмотри, правильно ли будет определяться рабочая папка
Да, правильно. Даже если VP не в панели TC текущая VP-папка помнится и ссыла сохраняется в неё. Без /w"" только в корень VP.

P.S. Возможно ли при запросе "Добавить ссылку на..." включить указание целевой папки VP. Иначе как-то вслепую работает, если VP не в панели.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

2Ask-rus
Если тебе от ВП нужна только совместимость с плейлистами, почитай статью. Может, стоит воспользоваться Temporary Panel или Temporary Drive, заточенными специально под работу с плейлистами? Virtual Panel более мощна и нацелена на другое. Не стоит забивать гвозди микроскопом.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

ask-rus писал(а):Да как всегда, моя больная тема - плееры. Добавить выделенные в ВП в плейлист плеера (Winamp, Media Player Classic)...
Я написал Гислеру, что внутренние ассоциации не работают для множественного выделения во временных панелях - если исправит, можен будет добавлять выделеные файлы в плейлист через контекстное меню.
GGS писал(а):Да, правильно. Даже если VP не в панели TC текущая VP-папка помнится и ссыла сохраняется в неё. Без /w"" только в корень VP.

P.S. Возможно ли при запросе "Добавить ссылку на..." включить указание целевой папки VP. Иначе как-то вслепую работает, если VP не в панели.
Будущая версия VPBatch будет и без /w"".
Я думал над PS, но скрипты пока не позволяют использовать строку LastPath. Хотя, была мысль устанавливать локальную переменную окружения - тогда ее можно было бы использовать - но будут конфликты, если используется несколько временных панелей одновременно, т.к. они будут перезаписывать ее. Хотя, можно включать в название этой переменной имя модуля, если оно не стандартно (т.е. %${virtual panel}Path% или ${Virtual Panel 1}Path для модулей, названных "Virtual Panel" и "Virtual Panel 1").

В общем, сделал. Теперь при каждой смене LastPath ее значение записывается в переменную окружения ${<root_name>}Path, т.е. у меня работает скрипт вида:

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

VPBatch.exe ^exec { ^ifok "Add as "%N" to %%${Virtual Panel (debug)}Path%%?" { ^add %N %P%N } {} }
или

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

VPBatch.exe ^exec { ^ifok "Add as %%${Virtual Panel (debug)}Path%%"%N? { ^add %N %P%N } {} }
(моя виртуальная панель в ТК называется "Virtual Panel (debug)")

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

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

AskParam.exe /c"Add folder link to virtual panel" /t"%%${Virtual Panel (debug)}Path%%"%N /p"Enter target name:" VPBatch.exe ^exec { ^ifok "Add as %1?" { ^add %N %P%N } {} }
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

В общем, еще подумав, я добавил общую переменную окружения, чтобы можно было не заморачиваться с именем VP, особенно работая в данный момент времени только с одним модулем.


VirtualPanel 1.0.0.555:
+ в переменные окружения ${Virtual Panel}Path and ${}Path записывается последний посещенный виртуальный путь
* VPBatch больше не требует /w"" для работы с текущей папкой

То есть, если модуль используется один, обе переменные всегда хранят одинаковое значение, если же модулей несколько, ${}Path хранит последний путь модуля, у которого ТК последним запрашивал содержимое папки.

Надеюсь, никто до меня не использовал переменные окружения с такими именами. :lol:

Итак, кнопка (яйца с разных ракурсов):

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

VPBatch.exe ^exec { ^ifok "Добавить ссылку на объект как %%${}Path%%"\%N? { ^add %N %P%N } {} }
VPBatch.exe ^exec { ^ifok "Добавить ссылку на "%P%N" как %%${}Path%%"\%N? { ^add %N %P%N } {} }
VPBatch.exe ^exec { ^ifok "Добавить ссылку %%${}Path%%"\%N" для "%P%N? { ^add %N %P%N } {} }
AskParam.exe /c"Добавление ссылки на временную панель" /t"%%${}Path%%\"%N /p"Добавить "%N" как:" VPBatch.exe ^exec { ^ifok "Add as %%1?" { ^add "%%1" %P%N } {} }
Последний AskParam здесь.
Последний раз редактировалось MVV Ср мар 24, 2010 19:03, всего редактировалось 1 раз.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV писал(а):AskParam.exe /c"Добавление ссылки на временную панель" /t"%%${}Path%%"%N /p"Добавить "%N" как:" VPBatch.exe ^exec { ^ifok "Add as %1?" { ^add %N %P%N } {} }
Пришлось исправить, так работает:
AskParam.exe /c"Добавление ссылки на временную панель" /t"%%${}Path%%"%N /p"Добавить "%N" как:" VPBatch.exe ^exec { ^ifok "Add as %%1?" { ^add %%1 %P%N } {} }

Теперь для полного счастья не хватает автоматического создания папки, если при запросе пути указать новую.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Точно, поправил команду) не забудь, что %%1 лучше брать в кавычки, т.к. AskParam не будет дописывать их при необходимости.

А с созданием папки... Ведь если ты просто копируешь файл из папки в папку, и укажешь несуществующий путь, ТК пошлет тебя подальше. Так и тут. :)

Наверное, я добавлю внутреннюю команду, которая будет создавать несуществующий путь.
Последний раз редактировалось MVV Ср мар 24, 2010 20:21, всего редактировалось 1 раз.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV писал(а):Ведь если ты просто копируешь файл из папки в папку, и укажешь несуществующий путь, ТК пошлет тебя подальше.
Не-а, не пошлёт. Если обе панели одинаковы и я жму <F5>, то в предлагаемом диалоге я могу вписать несуществующую папку и всё OK.
MVV писал(а):Так и тут.
Зачем себя ограничивать? :roll:
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

GGS писал(а):
MVV писал(а):Ведь если ты просто копируешь файл из папки в папку, и укажешь несуществующий путь, ТК пошлет тебя подальше.
Не-а, не пошлёт.
До сего дня я думал, что пошлет. :D


Последний релиз на сегодня.

VirtualPanel 1.0.0.560 (добавлено после 1.0.0.555):
+ новые флаги для команды add (для замены существующего объекта и для создания промежуточных папок)
Последний раз редактировалось MVV Ср мар 24, 2010 20:34, всего редактировалось 1 раз.
Ответить