View previous topic :: View next topic |
Author |
Message |
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Fri Sep 09, 2011 11:05 Post subject: |
|
|
MVV
Есть на примете такая утилита?
А то батником не очень красиво. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Fri Sep 09, 2011 15:34 Post subject: |
|
|
Просьба включить в следующую версию переменную, определяющую язык запущенной ОС.
Примеры использования - запуск самого Тотала и приложений с необходимым языком в зависимости от языка ОС.
В плагине имеется команда
IniWrite [/EV] <имя ini> <секция> <ключ> [<текст>]
А как её использовать если в ini-файле нет секций? (или скажем, нужно прописать определенные параметры в другой тип файлов (cfg, txt ...)
И ещё вопрос.
Мне для работы одной из программ нужно прописать через команду IniWrite путь к установленному Тоталу параметр C:\\Soft\\TC
Переменная %COMMANDER_PATH% выдаёт значение C:\Soft\TC
Как можно получить значение пути к папке с Тоталом именно с двойными слешами? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Sep 09, 2011 15:58 Post subject: |
|
|
HA3APET wrote: | Очень бы хотелось ключик для ShellExec, что бы если программа уже запущена (висит в процессах), она не запускалась. | Поддерживаю. Было бы здорово, если бы не запускалась не только программа, но и скрипты этой программы. В качестве идентификации можно использовать полные пути, а не PID.
LonerD wrote: | А как её использовать если в ini-файле нет секций? | Значит, секция создаётся, если её нет. LonerD wrote: | или скажем, нужно прописать определенные параметры в другой тип файлов | Это не предусмотрено, в мануале речь идёт только об ini.
LonerD wrote: | Мне для работы одной из программ | Программа, пишущая в реестр? Может, альтернативу найти с одинарными слешами? |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Fri Sep 09, 2011 16:30 Post subject: |
|
|
Flasher wrote: | LonerD wrote: | А как её использовать если в ini-файле нет секций? | Значит, секция создаётся, если её нет. LonerD wrote: | или скажем, нужно прописать определенные параметры в другой тип файлов | Это не предусмотрено, в мануале речь идёт только об ini. |
В том то и дело, что не нужно, чтобы секция создавалась. У некоторых программ (редко, но встречается) ini-файл настроек - это обычный текстовый файл с расширением ini (пример - Кнопка для Тотала для работы с 7-Zip SFX версии 0.12).
Раз сейчас нет такой возможности - то просьба на будущее ввести возможность обработки текстовых файлов (ini,cfg), в которых нет разделения на секции.
Flasher wrote: | Программа, пишущая в реестр? Может, альтернативу найти с одинарными слешами? |
Альтернативу то найти можно (равно как и альтернативные методы решения, но менее красивые).
В данном случае - программа Locate32, в которой портабельность реализована через внесение значений в реестр при запуске программы и последующем их удалении.
Плюс иногда нужно внести в реестр конкретные значения пути (относительно папки с установленным Тоталом) для запуска непортабельных программ в режиме портабельности с помощью kIT Portable Launcher.
Поддерживается ли в операторах сравнения конъюнкция и дизъюнкция?
If <выражение 1> <оператор> <выражение 2> or <выражение 3> <оператор> <выражение 4> Then |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Sep 09, 2011 18:57 Post subject: |
|
|
LonerD wrote: | пример - Кнопка для Тотала для работы с 7-Zip SFX версии 0.12 | И что, требуется для этой кнопки при каждом запуске менять настройки? LonerD wrote: | Раз сейчас нет такой возможности - то просьба на будущее ввести возможность обработки текстовых файлов (ini,cfg), в которых нет разделения на секции. | Ты бы хотя бы к автору обращался с хотелками, пропустит ведь.
LonerD wrote: | В данном случае - программа Locate32, в которой портабельность реализована через внесение значений в реестр при запуске программы и последующем их удалении. | Вроде портабл-версий они не распространяют. Пробежался по параметрам комстроки и не понял, что там работает с реестром. LonerD wrote: | Плюс иногда нужно внести в реестр конкретные значения пути (относительно папки с установленным Тоталом) для запуска непортабельных программ в режиме портабельности с помощью kIT Portable Launcher. | kIT PL не поддерживает однослэшевые пути? Для автора реализовать - расплюнуть. Стоит к нему обратиться.
LonerD wrote: | Поддерживается ли в операторах сравнения конъюнкция и дизъюнкция?
If <выражение 1> <оператор> <выражение 2> or <выражение 3> <оператор> <выражение 4> Then | Советую попробовать. Я как-то пытался использовать, но не помню, каким был результат. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Sat Sep 10, 2011 02:51 Post subject: |
|
|
Оператор or не работает.
Некритично, конечно, просто с его помощью некоторые пункты в Autorun.cfg можно было сократить.
Пожелание к функционалу - добавить or и and.
Прошу помощи.
Как правильно прописать в Autorun.cfg выполнение команды экспорта ветки реестра в файл.
Под командной строкой команда выглядит и работает так:
cmd /c reg export "HKEY_CURRENT_USER\Total Commander" "%commander_path%\Total.reg"
В Autorun должно быть примерно так, но как-то не так, где-то ошибка:
Quote: | ShellExec "cmd.exe" '"/c reg export "HKEY_CURRENT_USER\Total Commander" "%commander_path%\Total.reg"' |
|
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Sep 10, 2011 11:17 Post subject: |
|
|
Если добавлять and и or, то обязательно заключать выражения в скобки: If (условие1) and (условие2) or (условие3) Then bla-bla-bla.
LonerD, для добавления в реестр можно просто использовать команду regedit.exe /s "путь к рег-файлу". Плюс в том, что это не консольная программа, т.е. черное окно мелькать не будет. Кстати, чтобы черные окна не так надоедали, можно ставить параметр /SW_MINIMIZE при вызове ShellExec - тогда будет мелькать лишь кнопка на панели задач.
В твоей команде я вижу лишнюю (непарную) кавычку. Возможно, дело в ней. Перед /c попробуй убрать кавычку.
Как вариант, создай в тотале юзер-команду, вызывающую нужное действие, и запускай её из Autorun командой CommandExec. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Sat Sep 10, 2011 14:58 Post subject: |
|
|
MVV
Спасибо.
В данном случае надо не в реестр внести данные, а из реестра в файл.
С кавычками сколько не игрался (ставил, убирал) - ничего не получается, пробовал упростить задачу до такого вида:
Code: | ShellExec "cmd.exe" "/c reg export HKEY_CURRENT_USER\Total C:\Total.reg" |
Не работает.
Консоли передаётся параметр /с, а остальные параметры не отрабатывают.
Пробовал ещё такой вариант (без закрытия окна консоли) - то же самое, параметры не отрабатывают, открывается окошко консоли в папке с Тоталом, и всё.
Code: | ShellExec "cmd.exe" "reg export HKEY_CURRENT_USER\Total C:\Total.reg" |
Создать юзер-команду - и правда хорошее решение.
Хотя я уже сделал немного по другому - прописал проблемную команду в cmd-файл и вызывал этот файл через Autorun.cfg (чтобы не мелькали окошки использовать hidcon).
Но всё таки не понятно почему не отрабатывает ShellExec.
Возможно, один параметр только отрабатывает, а остальные игнорируются? |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Sep 10, 2011 15:29 Post subject: |
|
|
Можт, тут тоже дело в идиотской обработке параметров в cmd.exe? Попробуй написать так:
Code: | ShellExec /SW_MINIMIZE "cmd.exe" '/c "reg export HKEY_CURRENT_USER\Total C:\Total.reg"' |
И так, если предыдущее будет работать:
Code: | ShellExec /SW_MINIMIZE "cmd.exe" '/c "reg export "HKEY_CURRENT_USER\Total" "%commander_path%\Total.reg""' |
И вообще, зачем тебе вызывать cmd.exe, если можно сразу вызвать reg.exe?
Code: | ShellExec /SW_MINIMIZE /EV "reg.exe" 'export "HKEY_CURRENT_USER\Total" "%commander_path%\Total.reg"' |
_________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Sep 10, 2011 17:22 Post subject: |
|
|
LonerD
Я не понял, разве мой вчерашний вариант из лички не сработал?:
Code: | ShellExec /EV /SW_HIDE '%ComSpec%' '/c REG EXPORT HKCU\Total "%COMMANDER_PATH%\Total.reg" /y' | без посредника:
Code: | ShellExec /EV /SW_HIDE REG 'EXPORT HKCU\Total "%COMMANDER_PATH%\Total.reg" /y' |
MVV wrote: | чтобы черные окна не так надоедали, можно ставить параметр /SW_MINIMIZE при вызове ShellExec - тогда будет мелькать лишь кнопка на панели задач |
LonerD wrote: | чтобы не мелькали окошки использовать hidcon | Оба см. выше на нужный ключ. |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Sun Sep 11, 2011 12:24 Post subject: |
|
|
Обнаружил одну проблемку с Autorun.
Выполняю:
Code: | CommandExec /CD "\\\Virtual Panel"
Sleep 50
SendCommand cm_GotoPreviousDir
| Всё бы хорошо, но если в wincmd.ini стоит ActiveRight=1, то получится так: в левой панели произойдёт переход на \\\Virtual Panel, но назад перехода не случится, как я понимаю, потому что тем временем активной стала правая панель.
На Sleep не обращайте внимания. Без него то же самое. А при запуске в нагруженной системе бывает не успевает перейти в \\\Virtual Panel. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Sep 11, 2011 15:27 Post subject: |
|
|
А тут ничего не сделаешь. Плагин работает параллельно с тоталом, и тотал ни коим образом плагину не сообщает, что он переключает фокус на правую панель. Единственное что тут можно сделать - дождаться, пока правая панель станет активной, и тогда проводить махинации. По идее, на TCFS2 можно набросать подобный скриптик. Вопрос лишь в том, насколько это будет заметно со стороны. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Sun Sep 11, 2011 15:44 Post subject: |
|
|
Верно, выхода два: ActiveRight=0 или
Code: | Sleep 50 #или больше
CommandExec /CD "\\\Virtual Panel"
...
| Да только зыбко это. Жаль. |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Sun Sep 11, 2011 22:00 Post subject: |
|
|
ApceH
Я в своей сборке переделал на
Code: | CommandExec /CD:T "\\\Virtual Panel"
Sleep 40
SendCommand cm_CloseCurrentTab |
|
|
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
|