View previous topic :: View next topic |
Author |
Message |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Sat Jan 23, 2010 16:47 Post subject: [WFX] VirtualPanel - временная панель для ТК (Unicode) |
|
|
VirtualPanel - это реализация временной панели для Total Commander. Это что-то вроде виртуальной папки для хранения ссылок на часто используемые файлы и взаимодействия с ними как с реальными файлами, а не как ссылками. Она не хранит файлы, она хранит только ссылки на них в специальных файлах-списках.
VP можно использовать как временное хранилище кучи файлов, которую нужно скопировать куда-то ещё. Также её можно использовать для каталогизации медиа файлов и для других целей. В частности, можно настроить папку для автоматического сбора файлов из нескольких каталогов компьютера.
Рад представить вам свою реализацию модуля временной панели. Появилась она по причине того, что существовавшие ранее аналоги не позволяли в полной мере использовать возможности подобных панелей. Обзор и примеры использования временных панелей в тотале можно найти здесь.
Как обычно, если есть какие-то пожелания или предложения что-то добавить или исправить - буду рад их видеть. Также постараюсь ответить на любые вопросы касательно модуля и его взаимодействия с ТК.
Временная панель позволяет хранить ссылки файлы и папки, к которым приходится часто обращаться, и собственно обращаться к ним, как к обычным файлам (в меру возможностей интерфейса файловых систем ТК).
Разработка модуля началась еще осенью прошлого года, и на официальном форуме давно есть страничка обсуждения, но только сегодня я решил создать тему для обсуждения модуля и здесь. Параллельно с разработкой модуля я составляю список тех функций, которые поддерживаются при работе с обычными панелями ТК, но не поддерживаются при работе с модулями файловых систем (на официальном форуме). Надеюсь, некоторые из них будут реализованы в ТК.
Информация о последней версии
Версия: 2.0.7 32/64
URL: VirtualPanel на wincmd.ru / VirtualPanel на totalcmd.net
Требования: Windows 2000 и выше, Total Commander
Возможности:
+ хранение ссылок на файлы и каталоги, а также виртуальные каталоги
+ сохранение содержимого VP при выходе, завершении работы Windows, по таймеру или после модификации
+ импорт/экспорт содержимого всей VP или отдельных папок
+ импорт/экспорт списков имен файлов (например, m3u)
+ корректная обработка операций копирования/перемещения
+ удаление файлов физически при зажатой клавише Shift
+ протоколирование операций с файлами
+ внутренние команды, расширяющие возможности (выполните команду ? для списка команд)
+ возможность выполнять команды блоками, а также создавать файлы скриптов
+ автовыполняемые скрипты при загрузке состояния или при входе в каталог
+ возможность удалённого запуска скриптов
+ виртуальный браузер с поддержкой перетаскивания файлов
+ поддержка многопоточности (фоновые операции в ТК 7.55 и более поздних)
+ поддержка внутренних ассоциаций в ТК 7.51 и более поздних
+ поддержка стандартной в ТК команды cd
+ полная поддержка Юникода
Общая информация:
Файловая система модуля может содержать три обобщенных типа объектов: виртуальный объект (файл/папка, не имеет реального источника), ссылка на реальный объект (файл/папку, хранит ссылку на источник) и реальный объект (отображаются при входе в папку-ссылку). Виртуальные файлы могут содержать скрипты (последовательности команд для выполнения), виртуальные папки обычно используются для упорядочения ссылок на реальные объекты, их можно создавать/копировать/переименовать/удалять. Для объектов-ссылок доступны привычные операции - обзор папки, запуск (открыть папки по ссылке можно через Ctlr+Enter + Enter), просмотр содержимого, открытие окна свойств, удаление, копирование/перемещение на обычную панель или в другую папку VP. При удалении объекта-ссылки удаляется только ссылка. Для удаления также и объекта-источника необходимо удержать клавишу Shift до появления диалога подтверждения. При удалении объектов внутри реальных папок запрос отображается в любом случае.
Вы можете добавить ссылки для запуска программ или вызова документов (плейлистов, мультимедиа файлов и т.п.) или даже целых папок, причем программы могут быть запущены с параметрами командной строки, как из обычной панели (при этом путь запуска будет соответствовать папке-источнику текущей папки). Однако, внутри виртуальной папки доступны только внутренние команды и запуск программ, имеющих ссылки внутри структуры временной панели (по абсолютному или относительному пути).
При копировании файлов во временную панель действие зависит от типа текущей папки назначения. Если файлы копируются в папку-ссылку, происходит физическое копирование. Если же это чисто виртуальная папка (такие показаны специальным значком папки с красной окантовкой, причем значок может быть указан пользователем в файле конфигурации), файлы добавляются к содержимому виртуальной папки (если копируется структура, ТК дублирует ее, создавая виртуальные папки). Добавление физической папки как ссылки возможно только с использованием внутренней команды <add (иное ТК пока не позволяет).
Виртуальный браузер позволяет выполнять самые базовые действия с файлами - запуск, переименование, удаление и перетаскивание во внешние окна или другие окна браузера. Поддерживаемые комбинации клавиш перечислены в файле Readme.txt.
Полную справку по параметрам, командам и скриптам смотрите в файле Readme.txt, входящему в дистрибутив модуля.
Панель инструментов, позволяющая использовать основные команды VirtualPanel:
Code: | [Buttonbar]
Buttoncount=18
button1=WCMICONS.dll,3
cmd1=%COMMANDER_PATH%\Plugins\FileSystem\VirtualPanel\VPBatch.exe
param1=^explore .
iconic1=0
menu1=V>V Virtual Explorer
button2=
iconic2=0
button3=WCMICONS.dll,65
cmd3=%COMMANDER_PATH%\Addons\AskParam\AskParam.exe
param3=/c"Добавление ссылки на временную панель" /t"%%${}Path%%\"%N /p"Добавить "%N" как:" "%%COMMANDER_PATH%%\Plugins\FileSystem\VirtualPanel\VPBatch.exe" ^add "%%1" %P%N
iconic3=0
menu3=P>V Добавить объект на временную панель...
button4=WCMICONS.dll,63
cmd4=%COMMANDER_PATH%\Addons\AskParam\AskParam.exe
param4=/c"Перемещение внутри временной панели" /t"%T"%S1 /p"Переместить "%S1" в:" "%%COMMANDER_PATH%%\Plugins\FileSystem\VirtualPanel\VPBatch.exe" ^exec { ^move %S1 "%%1" }
iconic4=0
menu4=V>V Переместить объект...
button5=WCMICONS.dll,64
cmd5=%COMMANDER_PATH%\Plugins\FileSystem\VirtualPanel\VPBatch.exe
param5=^ifok "Удалить %%${}Path%%\"%S1" из виртуальной панели?" { ^del /rd "%%${}Path%%\"%S1 }
iconic5=0
menu5=V>X Удалить объект из временной панели...
button6=WCMICONS.dll,28
cmd6=%COMMANDER_PATH%\Plugins\FileSystem\VirtualPanel\VPBatch.exe
param6=^edit "%S1"
iconic6=0
menu6=V>V Редактировать целевой объект/скрипт...
button7=
iconic7=0
button8=WCMICONS.dll,63
cmd8=%COMMANDER_PATH%\Addons\AskParam\AskParam.exe
param8=/c"Перемещение целевого объекта" /t%P%N /p"Переместить целевой объект "%S1" в:" "%%COMMANDER_PATH%%\Plugins\FileSystem\VirtualPanel\VPBatch.exe" ^tgmove %S1 "%%1"
iconic8=0
menu8=V*P Переместить целевой объект...
button9=WCMICONS.dll,32
cmd9=%COMMANDER_PATH%\Addons\AskParam\AskParam.exe
param9=/c"Переименование ссылки и целевого объекта" /t%S1 /p"Переименовать "%S1" и целевой объект в:" "%%COMMANDER_PATH%%\Plugins\FileSystem\VirtualPanel\VPBatch.exe" ^tgmove %S1 "%%1" ^move %S1 "%%1"
iconic9=0
menu9=V*P Переименовать вместе с целевым объектом...
button10=
iconic10=0
button11=WCMICONS.dll,4
cmd11=%COMMANDER_PATH%\Addons\AskParam\AskParam.exe
param11=/c"Загрузка файла состояния" /t%P%N /p"Укажите путь к файлу состояния:" "%%COMMANDER_PATH%%\Plugins\FileSystem\VirtualPanel\VPBatch.exe" ^load "%%1"
iconic11=0
menu11=P>V Загрузить файл состояния...
button12=WCMICONS.dll,76
cmd12=%COMMANDER_PATH%\Plugins\FileSystem\VirtualPanel\VPBatch.exe
param12=^ifok "Удалить всё содержимое папки %%${}Path%%?" { ^del /rd "%%${}Path%%\*" }
iconic12=0
menu12=V>X Очистить текущую папку...
button13=WCMICONS.dll,51
cmd13=%COMMANDER_PATH%\Addons\AskParam\AskParam.exe
param13=/c"Загрузка файла состояния в папку" /t%P%N /p"Файл состояния для загрузки в %%${}Path%%:" "%%COMMANDER_PATH%%\Plugins\FileSystem\VirtualPanel\VPBatch.exe" ^load "%%1" .
iconic13=0
menu13=P>V Загрузить содержимое файла состояния в текущую папку...
button14=
iconic14=0
button15=WCMICONS.dll,50
cmd15=%COMMANDER_PATH%\Addons\AskParam\AskParam.exe
param15=/c"Экспорт списка имен файлов" /t%P"%O".m3u /p"Создаваемый список MP3-файлов из %%${}Path%%:" "%%COMMANDER_PATH%%\Plugins\FileSystem\VirtualPanel\VPBatch.exe" ^export /a "%%1" . *.mp3
iconic15=0
menu15=P<V Создать M3U-список из MP3-файлов текущей виртуальной папки...
button16=
iconic16=0
button17=WCMICONS.dll,34
cmd17=%COMMANDER_PATH%\Plugins\FileSystem\VirtualPanel\VPBatch.exe
param17=^prop
iconic17=0
menu17=Параметры
button18=WCMICONS.dll,34
cmd18=%COMMANDER_PATH%\Plugins\FileSystem\VirtualPanel\VPBatch.exe
param18=^config
iconic18=0
menu18=Настройки |
Сохраните как VirtualPanel.bar и добавьте на панель инструментов. Пути к VPBatch.exe и AskParam.exe нужно прописать свои.
Last edited by MVV on Wed May 01, 2019 22:25; edited 45 times in total |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
|
Back to top |
|
 |
GGS
Joined: 02 May 2009 Posts: 322
|
(Separately) Posted: Sat Jan 23, 2010 17:54 Post subject: |
|
|
MVV wrote: | Также постараюсь ответить на любые вопросы касательно модуля и его взаимодействия с ТК. |
Возможно ли сделать поддержку имён в unicode? |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Sat Jan 23, 2010 20:21 Post subject: |
|
|
GGS wrote: | Возможно ли сделать поддержку имён в unicode? |
Пока не планирую, т.к. придется все переделывать. Возможно только в отдельной версии модуля - UWFX, поддерживающего Юникод. Хотя, с учетом того, что возврата к 9x уже не будет, наверное переведу на Unicode.
Бли-и-ин, спасибо, я видел эту тему, и писал в нее бооольшое сообщение.... но видимо заморочился с окнами в браузере и закрыл его... Придется восстанавливать... _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
GGS
Joined: 02 May 2009 Posts: 322
|
(Separately) Posted: Sat Jan 23, 2010 22:37 Post subject: |
|
|
Когда я кидаю на VP файл с CD, он имеет атрибут только для чтения и удалить эту запись с VP очень проблематично.
Приходится вручную редактировать файл указанный в DefFileList=
Или я не всё понимаю и есть цивилизованный способ? |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
GGS
Joined: 02 May 2009 Posts: 322
|
(Separately) Posted: Sat Jan 23, 2010 23:32 Post subject: |
|
|
Этот атрибут не снимается  |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
GGS
Joined: 02 May 2009 Posts: 322
|
(Separately) Posted: Sat Jan 23, 2010 23:45 Post subject: |
|
|
Да, виноват, не вынул диск.
Но как-то не удобно, для удаления записи надо:
1. Вынуть исходный диск
2. Снять атрибут R
3. Собственно, удалить запись
А если исходный файл на HDD, то снятие атрибута R воздействует на сам файл. Это не есть хорошо. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Sun Jan 24, 2010 00:49 Post subject: |
|
|
Я уже понял, что это не есть хорошо скоро выложу обновленную версию.
Во время отладки заметил дикую фичу винды: она умудряется найти файл с именем <? (ну, создал скрипт с таким содержимым, а винда, оказывается, возвращает успех на FindFirstFile).
VirtualPanel 1.0.0.200: исправлено перемещение файла по ссылке в физическую папку, убран запрет на удаление файлов только для чтения (кроме файлов-скриптов). |
|
Back to top |
|
 |
GGS
Joined: 02 May 2009 Posts: 322
|
(Separately) Posted: Sun Jan 24, 2010 03:45 Post subject: |
|
|
Спасибо, теперь с удалением всё в порядке.
Заметил непривычное поведение в диалоге изменения атрибутов (arhs).
При работе с одной ссылкой предлагаются три варианта (установить, снять, без изменений), а не два (установить, снять), т.е. так как при работе с несколькими выделенными.
В штатных панелях TC эти варианты различаются и есть соответствующая привычка.
Можно ли исправить? |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Jan 25, 2010 08:48 Post subject: |
|
|
GGS wrote: | При работе с одной ссылкой предлагаются три варианта (установить, снять, без изменений), а не два (установить, снять), т.е. так как при работе с несколькими выделенными.
В штатных панелях TC эти варианты различаются и есть соответствующая привычка. |
Да, я тоже обращал внимание на это, но не в моих силах что-то сделать, ТК просто сообщает мне, что надо такому-то файлу установить такой-то набор атрибутов. Пожалуй, я спрошу Гислера, почему так, может, он исправит.
Помимо этого, в следующей версии можно ожидать (был разговор), что корректно заработают параметры %P, %L и им подобные (пока они передают внутримодульные имена, с которых вне ТК толку 0). Также в следующей версии должны заработать внутренние ассоциации (нужно просто дать ТК запустить приложение - но пока он при этом извлекает его во временную папку, что недопустимо). _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Mon Jan 25, 2010 13:31 Post subject: |
|
|
2MVV
Ты мне прислал письмо; отчасти отвечаю на него здесь, потому что остальным тоже может быть интересно и полезно.
1. Скачал и установил последнюю версию. Кстати, как узнать номер версии? Обычно в ридми пишут "Программа такая -то, v1.23". По истории догадаться можно, но ее далеко не все читают. Так что лучше указать версию открытым текстом.
2. Перемещение работает.
3. Quote: | Странно, что русские символы не читаются в диалоге подтверждения удаления | Ничего не изменилось. Кракозябры как при перемещении, так и при удалении.
4. Quote: | А если все равно не читаются, использовать английский | В директории Language - только 1033.lng. Пишу <lang 1033 - ругается "Error downloading language file...". ОСь английская, ТС тоже.
5. Три раза из четырех при попытке зайти в VP (через Сетевое окружение или напрямую - безразлично) выдается вот что: Code: |
---------------------------
Total Commander 7.50RC2
---------------------------
Access violation at address 77821345. Write of address 00000000.
Please report this error to the Author, with a description
of what you were doing when this error occurred!
Windows exception: C0000005
Stack trace:
77821345
650057 650318 623552 624B66 624BDB 5D5189
5D9291 443191 443C62 517242 443C85 441D21
441C5F 444016 443C62 >413EA4 443223 413EA4
413EA4 443191 413EA4 443C62 413EA4 443223
413EA4 419580 69DA0D
Raw:
65006C 65006C 650057 69CEE9 650318 623552
624B66 624BDB 69A5C5 4D94E1 69A7CB 6773D8
61006B 61006B 657147 420C5A 420CA2 6650EB
69A5C5 66562C 69A6AF 6947E4 4E2C07 4E2C54
6ABFEA 443191 413EA4 443FDB 441D21 443F31
441D21 431C7F 4432E5 443C62 443C85 413EA4
443223 413EA4 5D5189 443191 413EA4 443FDB
441D21 443F31 431C7F 4432E5 443C62 443C85
413EA4 443223 413EA4 402235 4023B3 4023DB
4026A4 4036C7 4037B6 430F20 69A169 696ABB
Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Yes No
--------------------------- | Комп перезагружал.
Пока все. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Jan 25, 2010 19:07 Post subject: |
|
|
Версия есть в свойствах файла (если для WFX винда не показывает вкладку Версия - это ее вина, но как минимум в FileInfo версию видно), а также показывается в заголовке диалога свойств модуля.
Quote: | Ничего не изменилось. Кракозябры как при перемещении, так и при удалении. |
Хм, ось, говоришь, английская? А кодировка 1251 у тебя вообще поддерживается? Если вместо нее используется 1252, то естественно будут кракозябры. У тебя какой язык выбран по умолчанию для программ в региональных стандартах? И вообще, ось какая? Попробуй открыть VirtualPanel.wfx в листере (в ANSI) и поискать русские строки (например, "файл") - найдутся? И что у тебя в системе возвращает системная функция GetUserDefaultLCID (выполни из любой среды, например, из скрипта)? Язык по умолчанию является русским тогда и только тогда, когда эта функция возвращает 1049.
Quote: | В директории Language - только 1033.lng. Пишу <lang 1033 - ругается "Error downloading language file...". ОСь английская, ТС тоже. |
Ничего не понимаю. Написал у себя <lang 1033 - никаких проблем, сразу язык английский. Кстати, сообщение неспроста английское, и в нем неспроста указывается полный путь к файлу локализации - правильный ли файл ищет VP?
Quote: | Три раза из четырех при попытке зайти в VP (через Сетевое окружение или напрямую - безразлично) выдается вот что: |
Хм, интресно... А на финалке поведение такое же? Пробовал очистить конфигурацию VP? _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Mon Jan 25, 2010 19:45 Post subject: |
|
|
Quote: | У тебя какой язык выбран по умолчанию для программ в региональных стандартах? | Локаль русская. Клава английская. Quote: | И вообще, ось какая? | W2KSР3Eng. Quote: | Попробуй открыть VirtualPanel.wfx в листере (в ANSI) и поискать русские строки (например, "файл") - найдутся? | Да. Quote: | И что у тебя в системе возвращает системная функция GetUserDefaultLCID | 1033. Quote: | Написал у себя <lang 1033 - никаких проблем, сразу язык английский | Проверил бы, да панель твоя падает зело исправно, в нее не зайти никак. Quote: | А на финалке поведение такое же? | Финалка - это кто? Если версия плагина (200), то только на ней и есть. С предыдущей (170) версией плагина проблемы были (и я о них писал), но, по крайней мере, ТС он не ронял. Quote: | Пробовал очистить конфигурацию VP? | Да. Из меню удалил плагин, перегрузил ТС, снова прописал плагин. О результатах догадываешься? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|