Autorun
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Просьба включить в следующую версию переменную, определяющую язык запущенной ОС.
Примеры использования - запуск самого Тотала и приложений с необходимым языком в зависимости от языка ОС.
В плагине имеется команда
IniWrite [/EV] <имя ini> <секция> <ключ> [<текст>]
А как её использовать если в ini-файле нет секций? (или скажем, нужно прописать определенные параметры в другой тип файлов (cfg, txt ...)
И ещё вопрос.
Мне для работы одной из программ нужно прописать через команду IniWrite путь к установленному Тоталу параметр C:\\Soft\\TC
Переменная %COMMANDER_PATH% выдаёт значение C:\Soft\TC
Как можно получить значение пути к папке с Тоталом именно с двойными слешами?
Примеры использования - запуск самого Тотала и приложений с необходимым языком в зависимости от языка ОС.
В плагине имеется команда
IniWrite [/EV] <имя ini> <секция> <ключ> [<текст>]
А как её использовать если в ini-файле нет секций? (или скажем, нужно прописать определенные параметры в другой тип файлов (cfg, txt ...)
И ещё вопрос.
Мне для работы одной из программ нужно прописать через команду IniWrite путь к установленному Тоталу параметр C:\\Soft\\TC
Переменная %COMMANDER_PATH% выдаёт значение C:\Soft\TC
Как можно получить значение пути к папке с Тоталом именно с двойными слешами?
Поддерживаю. Было бы здорово, если бы не запускалась не только программа, но и скрипты этой программы. В качестве идентификации можно использовать полные пути, а не PID.HA3APET писал(а):Очень бы хотелось ключик для ShellExec, что бы если программа уже запущена (висит в процессах), она не запускалась.
Значит, секция создаётся, если её нет.LonerD писал(а):А как её использовать если в ini-файле нет секций?
Это не предусмотрено, в мануале речь идёт только об ini.LonerD писал(а):или скажем, нужно прописать определенные параметры в другой тип файлов
Программа, пишущая в реестр? Может, альтернативу найти с одинарными слешами?LonerD писал(а):Мне для работы одной из программ
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
В том то и дело, что не нужно, чтобы секция создавалась. У некоторых программ (редко, но встречается) ini-файл настроек - это обычный текстовый файл с расширением ini (пример - Кнопка для Тотала для работы с 7-Zip SFX версии 0.12).Flasher писал(а):Значит, секция создаётся, если её нет.LonerD писал(а):А как её использовать если в ini-файле нет секций?Это не предусмотрено, в мануале речь идёт только об ini.LonerD писал(а):или скажем, нужно прописать определенные параметры в другой тип файлов
Раз сейчас нет такой возможности - то просьба на будущее ввести возможность обработки текстовых файлов (ini,cfg), в которых нет разделения на секции.
Альтернативу то найти можно (равно как и альтернативные методы решения, но менее красивые).Flasher писал(а):Программа, пишущая в реестр? Может, альтернативу найти с одинарными слешами?
В данном случае - программа Locate32, в которой портабельность реализована через внесение значений в реестр при запуске программы и последующем их удалении.
Плюс иногда нужно внести в реестр конкретные значения пути (относительно папки с установленным Тоталом) для запуска непортабельных программ в режиме портабельности с помощью kIT Portable Launcher.
Поддерживается ли в операторах сравнения конъюнкция и дизъюнкция?
If <выражение 1> <оператор> <выражение 2> or <выражение 3> <оператор> <выражение 4> Then
И что, требуется для этой кнопки при каждом запуске менять настройки?LonerD писал(а):пример - Кнопка для Тотала для работы с 7-Zip SFX версии 0.12
Ты бы хотя бы к автору обращался с хотелками, пропустит ведь.LonerD писал(а):Раз сейчас нет такой возможности - то просьба на будущее ввести возможность обработки текстовых файлов (ini,cfg), в которых нет разделения на секции.
Вроде портабл-версий они не распространяют. Пробежался по параметрам комстроки и не понял, что там работает с реестром.LonerD писал(а):В данном случае - программа Locate32, в которой портабельность реализована через внесение значений в реестр при запуске программы и последующем их удалении.
kIT PL не поддерживает однослэшевые пути? Для автора реализовать - расплюнуть. Стоит к нему обратиться.LonerD писал(а):Плюс иногда нужно внести в реестр конкретные значения пути (относительно папки с установленным Тоталом) для запуска непортабельных программ в режиме портабельности с помощью kIT Portable Launcher.
Советую попробовать. Я как-то пытался использовать, но не помню, каким был результат.LonerD писал(а):Поддерживается ли в операторах сравнения конъюнкция и дизъюнкция?
If <выражение 1> <оператор> <выражение 2> or <выражение 3> <оператор> <выражение 4> Then
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Оператор or не работает.
Некритично, конечно, просто с его помощью некоторые пункты в Autorun.cfg можно было сократить.
Пожелание к функционалу - добавить or и and.
Прошу помощи.
Как правильно прописать в Autorun.cfg выполнение команды экспорта ветки реестра в файл.
Под командной строкой команда выглядит и работает так:
cmd /c reg export "HKEY_CURRENT_USER\Total Commander" "%commander_path%\Total.reg"
В Autorun должно быть примерно так, но как-то не так, где-то ошибка:
Некритично, конечно, просто с его помощью некоторые пункты в 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"'
Если добавлять and и or, то обязательно заключать выражения в скобки: If (условие1) and (условие2) or (условие3) Then bla-bla-bla.
LonerD, для добавления в реестр можно просто использовать команду regedit.exe /s "путь к рег-файлу". Плюс в том, что это не консольная программа, т.е. черное окно мелькать не будет. Кстати, чтобы черные окна не так надоедали, можно ставить параметр /SW_MINIMIZE при вызове ShellExec - тогда будет мелькать лишь кнопка на панели задач.
В твоей команде я вижу лишнюю (непарную) кавычку. Возможно, дело в ней. Перед /c попробуй убрать кавычку.
Как вариант, создай в тотале юзер-команду, вызывающую нужное действие, и запускай её из Autorun командой CommandExec.
LonerD, для добавления в реестр можно просто использовать команду regedit.exe /s "путь к рег-файлу". Плюс в том, что это не консольная программа, т.е. черное окно мелькать не будет. Кстати, чтобы черные окна не так надоедали, можно ставить параметр /SW_MINIMIZE при вызове ShellExec - тогда будет мелькать лишь кнопка на панели задач.
В твоей команде я вижу лишнюю (непарную) кавычку. Возможно, дело в ней. Перед /c попробуй убрать кавычку.
Как вариант, создай в тотале юзер-команду, вызывающую нужное действие, и запускай её из Autorun командой CommandExec.
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
MVV
Спасибо.
В данном случае надо не в реестр внести данные, а из реестра в файл.
С кавычками сколько не игрался (ставил, убирал) - ничего не получается, пробовал упростить задачу до такого вида:
Не работает.
Консоли передаётся параметр /с, а остальные параметры не отрабатывают.
Пробовал ещё такой вариант (без закрытия окна консоли) - то же самое, параметры не отрабатывают, открывается окошко консоли в папке с Тоталом, и всё.
Создать юзер-команду - и правда хорошее решение.
Хотя я уже сделал немного по другому - прописал проблемную команду в cmd-файл и вызывал этот файл через Autorun.cfg (чтобы не мелькали окошки использовать hidcon).
Но всё таки не понятно почему не отрабатывает ShellExec.
Возможно, один параметр только отрабатывает, а остальные игнорируются?
Спасибо.
В данном случае надо не в реестр внести данные, а из реестра в файл.
С кавычками сколько не игрался (ставил, убирал) - ничего не получается, пробовал упростить задачу до такого вида:
Код: Выделить всё
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.
Возможно, один параметр только отрабатывает, а остальные игнорируются?
Можт, тут тоже дело в идиотской обработке параметров в cmd.exe? Попробуй написать так:
И так, если предыдущее будет работать:
И вообще, зачем тебе вызывать cmd.exe, если можно сразу вызвать reg.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""'Код: Выделить всё
ShellExec /SW_MINIMIZE /EV "reg.exe" 'export "HKEY_CURRENT_USER\Total" "%commander_path%\Total.reg"'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
Обнаружил одну проблемку с Autorun.
Выполняю:Всё бы хорошо, но если в wincmd.ini стоит ActiveRight=1, то получится так: в левой панели произойдёт переход на \\\Virtual Panel, но назад перехода не случится, как я понимаю, потому что тем временем активной стала правая панель.
На Sleep не обращайте внимания. Без него то же самое. А при запуске в нагруженной системе бывает не успевает перейти в \\\Virtual Panel.
Выполняю:
Код: Выделить всё
CommandExec /CD "\\\Virtual Panel"
Sleep 50
SendCommand cm_GotoPreviousDir
На Sleep не обращайте внимания. Без него то же самое. А при запуске в нагруженной системе бывает не успевает перейти в \\\Virtual Panel.
А тут ничего не сделаешь. Плагин работает параллельно с тоталом, и тотал ни коим образом плагину не сообщает, что он переключает фокус на правую панель. Единственное что тут можно сделать - дождаться, пока правая панель станет активной, и тогда проводить махинации. По идее, на TCFS2 можно набросать подобный скриптик. Вопрос лишь в том, насколько это будет заметно со стороны.
Верно, выхода два: ActiveRight=0 или
Да только зыбко это. Жаль.
Код: Выделить всё
Sleep 50 #или больше
CommandExec /CD "\\\Virtual Panel"
...
ApceH
Я в своей сборке переделал на
Я в своей сборке переделал на
Код: Выделить всё
CommandExec /CD:T "\\\Virtual Panel"
Sleep 40
SendCommand cm_CloseCurrentTab