View previous topic :: View next topic |
Author |
Message |
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Sun Mar 20, 2011 20:13 Post subject: |
|
|
Loopback
ещё из наблюдений, вдруг поможет
Code: | ShellExec /T /W "Camper.exe" "" "%commander_path%\Camper\" |
Camper убивается - значок остаётся
Code: | ShellExec /TT /W "Camper.exe" "" "%commander_path%\Camper\" |
Camper завершается - значка нет
но если так
Code: | ShellExec /TT /W "AUTOFx.exe" "" "%commander_path%\autofx\"
ShellExec /T /W "Camper.exe" "" "%commander_path%\Camper\" |
то Camper завершается (значок пропадает), как будто стоит /TT а не /T |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Sun Mar 20, 2011 23:54 Post subject: |
|
|
Попробовал перейти на связку AssocQueryString+CreateProcess, на первый взгляд работает нормально. Кстати, теперь не обязательно убивать дерево (что, впрочем, было очевидно с самого начала), достаточно использовать /T /W.
1.4.9.5 beta |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Mon Mar 21, 2011 11:42 Post subject: |
|
|
Loopback
(
У меня плагин вообще ничего не запускает. Даже так
Code: | ShellExec "Camper.exe" "" "%commander_path%\Camper\" |
Win7 x64 SP1 |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon Mar 21, 2011 12:15 Post subject: |
|
|
HA3APET
Чудеса... Дома работает, сейчас пробую на работе - действительно, ничего. Ладно, будем разбираться. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon Mar 21, 2011 15:11 Post subject: |
|
|
Ох, ну и намудрили же Майкрософт с AssocQueryString... Вроде документированная функция, а на разных системах работает как ей вздумается.
В общем, вроде поправил. Новую версию делать не стал, можно скачать по последней ссылке. |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Mon Mar 21, 2011 15:39 Post subject: |
|
|
Loopback
Code: | ShellExec "Camper.exe" "" "%commander_path%\Camper\" |
не запускается
но bat файлы запускаются
Code: | ShellExec "reg.bat" "" "%commander_path%" |
но с полным игнорированием команд [/SW_HIDE|/SW_SHOWNORMAL|/SW_MINIMIZE|/SW_MAXIMIZE] |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon Mar 21, 2011 16:11 Post subject: |
|
|
HA3APET wrote: | не запускается |
А разве должен? Нужен же полный путь к файлу, или путь с переменными окружения. Запись
Code: | ShellExec "%commander_path%\Camper\Camper.exe" "" "%commander_path%\Camper\" |
должна работать.
HA3APET wrote: | но bat файлы запускаются |
Может быть путь, где лежит reg.bat, есть в PATH? Только в этом случае будет работать такая форма запуска - имя файла без пути.
HA3APET wrote: | но с полным игнорированием команд |
Да, это я упустил. Поправлю. |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Mon Mar 21, 2011 16:24 Post subject: |
|
|
Loopback wrote: | А разве должен? Нужен же полный путь к файлу, или путь с переменными окружения |
До этого работало) привык писать так
Code: | ShellExec "Camper.exe" "" "%commander_path%\Camper\" |
написал
Code: | ShellExec "%commander_path%\Camper\Camper.exe" "" "%commander_path%\Camper\" |
Запустилось! Да, теперь именно в такой форме.
Завершается всё исправно. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon Mar 21, 2011 16:49 Post subject: |
|
|
HA3APET wrote: | До этого работало) привык писать так |
Ну может какая-то особенность ShellExecute, который использовался раньше. Возможно, он пытается запустить файл из каталога, который задан в качестве рабочего.
Но вообще это не совсем корректная запись, поскольку путь (третий параметр) в данном случае - это именно рабочий каталог запускаемой программы, а отнюдь не путь, откуда должен запускаться файл. Такой вариант использования не подразумевался
В любом случае, пути предпочтительнее задавать явно или с переменными - так надежнее.
HA3APET wrote: | Запустилось! Да, теперь именно в такой форме.
Завершается всё исправно. |
Хорошо, а то я уже отладочную версию начал делать. |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Mon Mar 21, 2011 16:53 Post subject: |
|
|
Loopback
Осталось вернуть [/SW_HIDE|/SW_SHOWNORMAL|/SW_MINIMIZE|/SW_MAXIMIZE] и дело сделано |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon Mar 21, 2011 16:57 Post subject: |
|
|
HA3APET wrote: | Осталось вернуть [/SW_HIDE|/SW_SHOWNORMAL|/SW_MINIMIZE|/SW_MAXIMIZE] и дело сделано |
Версию не меняю, обновил ссылку. |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Mon Mar 21, 2011 17:26 Post subject: |
|
|
Loopback, всё отлично работает, всё как задумано! Спасибо за работу. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon Mar 21, 2011 19:15 Post subject: |
|
|
MVV
Есть подозрение, что на выходе ShellExecute использует тот же CreateProcess, только предварительно проделывает всякие поисковые операции - по реестру и не только.
На самом деле не так важно, какая функция скрывается внутри ShellExec, главное, чтобы команда работала как в документации. Наверно, стоит добавить туда указание, что первым параметром предполагается полный путь файла.
HA3APET wrote: | Ещё для ShellExec был бы полезен параметр - задержка запуска в секундах. |
Так есть команда Sleep. Просто разместить вызовы в конце конфигурации с заданной задержкой. |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Mon Mar 21, 2011 19:29 Post subject: |
|
|
Loopback
Да) я уже разобрался, что так можно, по-этому и удалил сообщение. |
|
Back to top |
|
|
|