View previous topic :: View next topic |
Author |
Message |
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Sun Sep 11, 2011 23:16 Post subject: |
|
|
MVV, Flasher
По поводу экспорта ключей реестра в файл. Вы пробовали предложенные варианты? У меня ни один не сработал, пробовал ещё разные способы с расставлением кавычек - reg-файл так и не сохранился. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Sep 11, 2011 23:36 Post subject: |
|
|
А у тебя точно в реестре существует раздел HKCU\Total? Обычно разделы программ создаются в HKCU\Software, но не напрямую в HKCU.
Да, я пробовал, правда с другим ключом (твоего ключа у меня нет и никогда не было), всё работает. Вот две строки, которые я только что попробовал:
Code: | ShellExec /SW_HIDE "cmd.exe" '/c "reg export "HKEY_CURRENT_USER\Environment" "%commander_path%\Data\Total.reg""'
ShellExec /SW_HIDE /EV "reg.exe" 'export "HKEY_CURRENT_USER\Environment" "%commander_path%\Data\Total.reg"' |
_________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Last edited by MVV on Sun Sep 11, 2011 23:41; edited 2 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 11, 2011 23:38 Post subject: |
|
|
LonerD
Аналогично, давал рабочие варианты. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Mon Sep 12, 2011 02:43 Post subject: |
|
|
Не повезло значит. Ключ был и есть, создал специально для проверки отработки команды. По три раза каждый вариант перепробовал, - не работало. Сейчас те же строки ввожу - ключ сохраняется. Чудеса...
Видимо, что-то где-то цеплялось и не успевало сработать. Уже замечал относительно других команд, что обычно работают, но иногда не срабатывают (не успевают сработать). Попробую в своём Autorun.cfg понаставить паузы Sleep. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Mon Sep 12, 2011 09:55 Post subject: |
|
|
Не вижу связи между задержками и экспортированием куска реестра в файл. Экспортирование никак не зависит от тотала и вполне может работать параллельно с тоталом. Другое дело - присутствует ли в момент запуска экспортирования тот ключ реестра.
Кстати, Loopback, как насчет добавления для функции ShellExec параметра /WAIT, позволяющего дождаться выполнения задачи перед выполнением следующей команды автозапуска? Приведу код на Си, ничего сложного нет:
Code: | SHELLEXECUTEINFO shx;
shx.cbSize=sizeof(SHELLEXECUTEINFO);
shx.fMask=need_to_wait_process ? SEE_MASK_NOCLOSEPROCESS : 0;
shx.hwnd=0;
shx.lpVerb=0;
shx.lpFile=path_to_program;
shx.lpParameters=parameters;
shx.lpDirectory=working_directory;
shx.nShow=show_flag;
bool success=ShellExecuteEx(&shx)!=0;
if (success && need_to_wait_process) {
WaitForSingleObject(shx.hProcess, INFINITE);
CloseHandle(shx.hProcess);
}
|
_________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Sep 12, 2011 20:04 Post subject: |
|
|
MVV wrote: | как насчет добавления для функции ShellExec параметра /WAIT | Я бы вообще ожидание по умолчанию сделал без всяких ключей. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Tue Sep 13, 2011 18:15 Post subject: |
|
|
Можно ли через Autorun_Starter удалить переменные окружения, создаваемые в autorun.cfg ?
Например, создаю переменную для запуска из тотала 32 и 64-битных приложений в зависимости от битности системы:
SetEnv /A /EV OSArch %autorun_osarch%
После закрытия Тотала она уже не нужна. Как её возможно удалить? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Sep 13, 2011 18:44 Post subject: |
|
|
LonerD
Так это переменные внутреннего окружения, действующие в текущем сеансе. Ниоткуда кроме как из окна ТС ты их вызвать не сможешь, разве что не пропишешь в системную переменную типа Path. При закрытии окна они так же вместе с ним и свернутся. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Tue Sep 13, 2011 20:08 Post subject: |
|
|
Ага. Кажись, понял причину.
Переменные действительно исчезают после закрытия тотала.
А вот если тотал не закрывать, а перезапустить с помощью Tinny TC Restarter или ReloadTC, то вот тут поджидает самое интересное. Мало того, что переменные среды остаются, но если перед перезапуском поправить autorun.cfg и прописать в нём другие значения переменных сред, то последствия могут быть самые непредсказуемые, вплоть до того, что значения новых переменных иногда (не всегда, но случалось) дописываются в конец к старым переменным.
А существует ли тогда рестрартер, который полностью выгружает Тотал, а потом запускает его? Или же этого невозможно добиться в силу того, что рестартер как таковой запускается из-под Тотала? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Tue Sep 13, 2011 21:20 Post subject: |
|
|
LonerD wrote: | А существует ли тогда рестрартер, который полностью выгружает Тотал, а потом запускает его? Или же этого невозможно добиться в силу того, что рестартер как таковой запускается из-под Тотала? |
Это надо экспериментировать с окружением при запуске процесса. Но точно не знаю, как это сделать.
И вообще, что значит "полностью выгружает"? И что понимается под чистой средой? Среда Проводника? Тогда надо как-то сказать Проводнику, что надо запустить тотал. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Last edited by MVV on Tue Sep 13, 2011 21:29; edited 1 time in total |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Tue Sep 13, 2011 21:25 Post subject: |
|
|
LonerD
Проверял через пресет с per? Или peq+pee. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Wed Sep 14, 2011 01:54 Post subject: |
|
|
Quote: | И вообще, что значит "полностью выгружает"? |
Не знаю. Но при перезапуске - что утилитами, что скриптом, - переменные остаются. Получается, что-то не даёт им полностью выгрузиться/удалиться.
Как я получил такую ситуацию (если кому интересно будет повторить):
Code: | По пунктам.
Установить плагин Environment Variables (отображение переменных сред).
В Autorun.cfg добавить строку
SetEnv /A /EV OSArch %autorun_osarch%
Сохранить Autorun.cfg.
Закрыть-открыть или же перезапустить Тотал.
Перейти в сетевое окружение - Environment Variables - Current process (Total Commander)
Там должна быть переменная OSArch, которая равна 32 или 64.
Открыть Autorun.cfg и удалить добавленную строку.
Теперь перезагрузить Тотал (через утилитку или скриптом).
Опять зайти в Environment Variables.
OSArch всё-ещё там, хотя в авторане она отсутствует (переменная осталась от предыдущего запуска Тотала и не удалилась при перезапуске).
А теперь закрыть Тотал полностью и открыть его снова. Переменной уже нету.
|
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Sep 14, 2011 02:50 Post subject: |
|
|
LonerD wrote: | Code: | Установить плагин Environment Variables (отображение переменных сред).
Перейти в сетевое окружение - Environment Variables - Current process (Total Commander)
Там должна быть переменная OSArch, которая равна 32 или 64. |
| Эти действия заменяются на выполнение из комстроки: %comspec% /k set OSARCH
|
|
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
|