Страница 21 из 243
Добавлено: Пт сен 09, 2011 10:03
MVV
ИМХО, проще найти микро утилитку, которая будет запускать программу только если она ещё не запущена, чем встраивать подобный функционал везде, где он нужен:)
Добавлено: Пт сен 09, 2011 11:05
HA3APET
MVV
Есть на примете такая утилита?
А то батником не очень красиво.
Добавлено: Пт сен 09, 2011 15:34
LonerD
Просьба включить в следующую версию переменную, определяющую язык запущенной ОС.
Примеры использования - запуск самого Тотала и приложений с необходимым языком в зависимости от языка ОС.
В плагине имеется команда
IniWrite [/EV] <имя ini> <секция> <ключ> [<текст>]
А как её использовать если в ini-файле нет секций? (или скажем, нужно прописать определенные параметры в другой тип файлов (cfg, txt ...)
И ещё вопрос.
Мне для работы одной из программ нужно прописать через команду IniWrite путь к установленному Тоталу параметр C:\\Soft\\TC
Переменная %COMMANDER_PATH% выдаёт значение C:\Soft\TC
Как можно получить значение пути к папке с Тоталом именно с двойными слешами?
Добавлено: Пт сен 09, 2011 15:58
Flasher
HA3APET писал(а):Очень бы хотелось ключик для ShellExec, что бы если программа уже запущена (висит в процессах), она не запускалась.
Поддерживаю. Было бы здорово, если бы не запускалась не только программа, но и скрипты этой программы. В качестве идентификации можно использовать полные пути, а не PID.
LonerD писал(а):А как её использовать если в ini-файле нет секций?
Значит, секция создаётся, если её нет.
LonerD писал(а):или скажем, нужно прописать определенные параметры в другой тип файлов
Это не предусмотрено, в мануале речь идёт только об ini.
LonerD писал(а):Мне для работы одной из программ
Программа, пишущая в реестр? Может, альтернативу найти с одинарными слешами?
Добавлено: Пт сен 09, 2011 16:30
LonerD
Flasher писал(а):LonerD писал(а):А как её использовать если в ini-файле нет секций?
Значит, секция создаётся, если её нет.
LonerD писал(а):или скажем, нужно прописать определенные параметры в другой тип файлов
Это не предусмотрено, в мануале речь идёт только об ini.
В том то и дело, что не нужно, чтобы секция создавалась. У некоторых программ (редко, но встречается) ini-файл настроек - это обычный текстовый файл с расширением ini (пример - Кнопка для Тотала для работы с 7-Zip SFX версии 0.12).
Раз сейчас нет такой возможности - то просьба на будущее ввести возможность обработки текстовых файлов (ini,cfg), в которых нет разделения на секции.
Flasher писал(а):Программа, пишущая в реестр? Может, альтернативу найти с одинарными слешами?
Альтернативу то найти можно (равно как и альтернативные методы решения, но менее красивые).
В данном случае - программа Locate32, в которой портабельность реализована через внесение значений в реестр при запуске программы и последующем их удалении.
Плюс иногда нужно внести в реестр конкретные значения пути (относительно папки с установленным Тоталом) для запуска непортабельных программ в режиме портабельности с помощью kIT Portable Launcher.
Поддерживается ли в операторах сравнения конъюнкция и дизъюнкция?
If <выражение 1> <оператор> <выражение 2>
or <выражение 3> <оператор> <выражение 4> Then
Добавлено: Пт сен 09, 2011 18:57
Flasher
LonerD писал(а):пример - Кнопка для Тотала для работы с 7-Zip SFX версии 0.12
И что, требуется для этой кнопки при каждом запуске менять настройки?

LonerD писал(а):Раз сейчас нет такой возможности - то просьба на будущее ввести возможность обработки текстовых файлов (ini,cfg), в которых нет разделения на секции.
Ты бы хотя бы к автору обращался с хотелками, пропустит ведь.
LonerD писал(а):В данном случае - программа Locate32, в которой портабельность реализована через внесение значений в реестр при запуске программы и последующем их удалении.
Вроде портабл-версий они не распространяют. Пробежался по параметрам комстроки и не понял, что там работает с реестром.
LonerD писал(а):Плюс иногда нужно внести в реестр конкретные значения пути (относительно папки с установленным Тоталом) для запуска непортабельных программ в режиме портабельности с помощью kIT Portable Launcher.
kIT PL не поддерживает однослэшевые пути? Для автора реализовать - расплюнуть. Стоит к нему обратиться.
LonerD писал(а):Поддерживается ли в операторах сравнения конъюнкция и дизъюнкция?
If <выражение 1> <оператор> <выражение 2> or <выражение 3> <оператор> <выражение 4> Then
Советую попробовать. Я как-то пытался использовать, но не помню, каким был результат.
Добавлено: Сб сен 10, 2011 02:51
LonerD
Оператор
or не работает.
Некритично, конечно, просто с его помощью некоторые пункты в Autorun.cfg можно было сократить.
Пожелание к функционалу - добавить
or и
and.
Прошу помощи.
Как правильно прописать в Autorun.cfg выполнение команды экспорта ветки реестра в файл.
Под командной строкой команда выглядит и работает так:
cmd /c reg export "HKEY_CURRENT_USER\Total Commander" "%commander_path%\Total.reg"
В Autorun должно быть примерно так, но как-то не так, где-то ошибка:
ShellExec "cmd.exe" '"/c reg export "HKEY_CURRENT_USER\Total Commander" "%commander_path%\Total.reg"'
Добавлено: Сб сен 10, 2011 11:17
MVV
Если добавлять and и or, то обязательно заключать выражения в скобки: If (условие1) and (условие2) or (условие3) Then bla-bla-bla.
LonerD, для добавления в реестр можно просто использовать команду regedit.exe /s "путь к рег-файлу". Плюс в том, что это не консольная программа, т.е. черное окно мелькать не будет. Кстати, чтобы черные окна не так надоедали, можно ставить параметр /SW_MINIMIZE при вызове ShellExec - тогда будет мелькать лишь кнопка на панели задач.
В твоей команде я вижу лишнюю (непарную) кавычку. Возможно, дело в ней. Перед /c попробуй убрать кавычку.
Как вариант, создай в тотале юзер-команду, вызывающую нужное действие, и запускай её из Autorun командой CommandExec.
Добавлено: Сб сен 10, 2011 14:58
LonerD
MVV
Спасибо.
В данном случае надо не в реестр внести данные, а из реестра в файл.
С кавычками сколько не игрался (ставил, убирал) - ничего не получается, пробовал упростить задачу до такого вида:
Код: Выделить всё
ShellExec "cmd.exe" "/c reg export HKEY_CURRENT_USER\Total C:\Total.reg"
Не работает.
Консоли передаётся параметр /с, а остальные параметры не отрабатывают.
Пробовал ещё такой вариант (без закрытия окна консоли) - то же самое, параметры не отрабатывают, открывается окошко консоли в папке с Тоталом, и всё.
Код: Выделить всё
ShellExec "cmd.exe" "reg export HKEY_CURRENT_USER\Total C:\Total.reg"
Создать юзер-команду - и правда хорошее решение.
Хотя я уже сделал немного по другому - прописал проблемную команду в cmd-файл и вызывал этот файл через Autorun.cfg (чтобы не мелькали окошки использовать hidcon).
Но всё таки не понятно почему не отрабатывает ShellExec.
Возможно, один параметр только отрабатывает, а остальные игнорируются?
Добавлено: Сб сен 10, 2011 15:29
MVV
Можт, тут тоже дело в идиотской обработке параметров в
cmd.exe? Попробуй написать так:
Код: Выделить всё
ShellExec /SW_MINIMIZE "cmd.exe" '/c "reg export HKEY_CURRENT_USER\Total C:\Total.reg"'
И так, если предыдущее будет работать:
Код: Выделить всё
ShellExec /SW_MINIMIZE "cmd.exe" '/c "reg export "HKEY_CURRENT_USER\Total" "%commander_path%\Total.reg""'
И вообще, зачем тебе вызывать
cmd.exe, если можно сразу вызвать
reg.exe?
Код: Выделить всё
ShellExec /SW_MINIMIZE /EV "reg.exe" 'export "HKEY_CURRENT_USER\Total" "%commander_path%\Total.reg"'
Добавлено: Сб сен 10, 2011 17:22
Flasher
LonerD
Я не понял, разве мой вчерашний вариант из лички не сработал?:
Код: Выделить всё
ShellExec /EV /SW_HIDE '%ComSpec%' '/c REG EXPORT HKCU\Total "%COMMANDER_PATH%\Total.reg" /y'
без посредника:
Код: Выделить всё
ShellExec /EV /SW_HIDE REG 'EXPORT HKCU\Total "%COMMANDER_PATH%\Total.reg" /y'
MVV писал(а):чтобы черные окна не так надоедали, можно ставить параметр /SW_MINIMIZE при вызове ShellExec - тогда будет мелькать лишь кнопка на панели задач
LonerD писал(а):чтобы не мелькали окошки использовать hidcon
Оба см. выше на
нужный ключ.
Добавлено: Вс сен 11, 2011 12:24
ApceH
Обнаружил одну проблемку с Autorun.
Выполняю:
Код: Выделить всё
CommandExec /CD "\\\Virtual Panel"
Sleep 50
SendCommand cm_GotoPreviousDir
Всё бы хорошо, но если в wincmd.ini стоит
ActiveRight=1, то получится так: в левой панели произойдёт переход на \\\Virtual Panel, но назад перехода не случится, как я понимаю, потому что тем временем активной стала правая панель.
На Sleep не обращайте внимания. Без него то же самое. А при запуске в нагруженной системе бывает не успевает перейти в \\\Virtual Panel.
Добавлено: Вс сен 11, 2011 15:27
MVV
А тут ничего не сделаешь. Плагин работает параллельно с тоталом, и тотал ни коим образом плагину не сообщает, что он переключает фокус на правую панель. Единственное что тут можно сделать - дождаться, пока правая панель станет активной, и тогда проводить махинации. По идее, на TCFS2 можно набросать подобный скриптик. Вопрос лишь в том, насколько это будет заметно со стороны.
Добавлено: Вс сен 11, 2011 15:44
ApceH
Верно, выхода два: ActiveRight=0 или
Код: Выделить всё
Sleep 50 #или больше
CommandExec /CD "\\\Virtual Panel"
...
Да только зыбко это. Жаль.
Добавлено: Вс сен 11, 2011 22:00
HA3APET
ApceH
Я в своей сборке переделал на
Код: Выделить всё
CommandExec /CD:T "\\\Virtual Panel"
Sleep 40
SendCommand cm_CloseCurrentTab