Страница 2 из 4

Добавлено: Вт ноя 08, 2016 14:56
Flasher
Skif_off
У тебя AutoIt где лежит?

Добавлено: Вт ноя 08, 2016 15:00
Skif_off
Flasher
Как и скрипт, в корне %COMMANDER_PATH%.

Добавлено: Вт ноя 08, 2016 15:08
Flasher
Skif_off
Так попробуй:

Код: Выделить всё

TOTALCMD#BAR#DATA
%ADM%%AutoIt%
"%%COMMANDER_PATH%%\restart.au3" --restart
%COMMANDER_EXE%
Перезапустить ТС

Добавлено: Ср ноя 09, 2016 09:54
Skif_off
Flasher
И в Win7x64, и в WinXP:
Line 0 (File "C:\Utilities\fm\%COMMANDER_PATH%\restart.au3"):
Error: Error opening the file.

Добавлено: Ср ноя 09, 2016 10:03
MVV
Flasher,
Вот кстати и пример, когда надо именно переменные использовать в первом поле. Относительными путями в таком случае не обойдешься, т.к. они от текущей папки отсчитываются, а она непостоянна, и во второе поле COMMANDER_PATH передавать бессмысленно, т.к. при повышении окружение не наследуется.

Вообще, конечно, непонятно, почему в разных системах поведение различается - ведь звёздочка тоталом обрабатывается и вырезается...

Skif_off,
Не проверял конкретно твою комстроку, но у меня и на 7 и на XP работает только такая аналогичная строка:

Код: Выделить всё

"%ADM%%COMMANDER_PATH%\cmdline.exe" "%COMMANDER_INI%"
И нигде не работает такая:

Код: Выделить всё

%ADM%"%COMMANDER_PATH%\cmdline.exe" "%COMMANDER_INI%"

Добавлено: Ср ноя 09, 2016 11:04
Flasher
Skif_off
Как в пути может быть одновременно C:\Utilities\fm\ и %COMMANDER_PATH%? :shock:
И что у тебя в %AutoIt%?
MVV писал(а):т.к. они от текущей папки отсчитываются, а она непостоянна
У тебя поле "Путь запуска:" отломалось? :D
MVV писал(а):и во второе поле COMMANDER_PATH передавать бессмысленно, т.к. при повышении окружение не наследуется.
Вообще есть такое. Но вопрос в том, где не наследуется. В параметре комстроки или только в коде.

Добавлено: Ср ноя 09, 2016 12:31
Skif_off
Flasher писал(а):Как в пути может быть одновременно C:\Utilities\fm\ и %COMMANDER_PATH%? Shocked
И что у тебя в %AutoIt%?
Совершенно не представляю. В %AutoIt% у меня %COMMANDER_PATH%\AutoIt3.exe

MVV
На Win7x64 вот так не работает (Файл не найден!):

Код: Выделить всё

"%ADM%%AutoIt%" "%COMMANDER_PATH%\restart.au3"
"%ADM%%AutoIt%" "%COMMANDER_PATH%\restart.au3" --restart
зато вот так

Код: Выделить всё

%ADM%"%AutoIt%" "%COMMANDER_PATH%\restart.au3" --restart
работает.

А на WinXP да, срабатывает только так:

Код: Выделить всё

"%ADM%%AutoIt%" "%COMMANDER_PATH%\restart.au3" --restart

Добавлено: Ср ноя 09, 2016 12:40
Flasher
Skif_off писал(а):В %AutoIt% у меня %COMMANDER_PATH%\AutoIt3.exe
А, ну тогда всё просто:

Код: Выделить всё

TOTALCMD#BAR#DATA
%ADM%%COMMANDER_PATH%\AutoIt3.exe
restart.au3 --restart
%COMMANDER_EXE%
Перезапустить ТС
%COMMANDER_PATH%\

Добавлено: Ср ноя 09, 2016 13:47
Skif_off
Flasher
Переменную %AutoIt% хочу оставить, она зависит от разрядности ТС, а вот попробовать сократить командную строку после переноса скрипта в корень ТС как-то не подумал. Спасибо, сделал так, вроде срабатывает:
[cut]

Код: Выделить всё

TOTALCMD#BAR#DATA
%ADM%"%AutoIt%"
restart.au3 --restart
%COMMANDER_PATH%\ButtonBar\TCrestart2.ico
* по умолчанию
%COMMANDER_PATH%\
0
-1

TOTALCMD#BAR#DATA
%ADM%"%AutoIt%"
restart.au3 --wf %Z"%X%P" "%T"
%COMMANDER_PATH%\ButtonBar\TCrestart2.ico
* %P и %T
%COMMANDER_PATH%\
0
-1

TOTALCMD#BAR#DATA
%ADM%"%AutoIt%"
restart.au3 --wf --8664 %Z"%X%P" "%T"
%COMMANDER_PATH%\ButtonBar\TCrestart2.ico
* %P и %T, x86<>x64
%COMMANDER_PATH%\
0
-1

TOTALCMD#BAR#DATA
%ADM%"%AutoIt%"
restart.au3 --8664
%COMMANDER_PATH%\ButtonBar\TCrestart2.ico
* x86<>x64
%COMMANDER_PATH%\
0
-1
[/cut]

Добавлено: Ср ноя 09, 2016 13:59
Flasher
Skif_off писал(а):она зависит от разрядности ТС
Где?
В %AutoIt% у меня %COMMANDER_PATH%\AutoIt3.exe
Тут ни намёка на разрядность. Когда разбираем вопросы, где важна каждая мелочь, логично давать точный ответ. Покажи запись в autorun.cfg.
По логике это должно быть нечто подобное:

Код: Выделить всё

If %SYSINFO_OSARCH% = 64 Then
  SetEnv /EV- AutoIt %COMMANDER_PATH%\AutoIt3x64.exe
Else
  SetEnv /EV- AutoIt %COMMANDER_PATH%\AutoIt3.exe
Но в таком случае не вижу смысла в кавычках в первом поле. Зачем ты их ставишь?
Плюс ко всему ничего не мешает при

Код: Выделить всё

If %SYSINFO_OSARCH% = 64 Then
  SetEnv OSARCH x%SYSINFO_OSARCH%
Else
  SetEnv OSARCH
запускать таким образом:

Код: Выделить всё

TOTALCMD#BAR#DATA
%ADM%%COMMANDER_PATH%\AutoIt3%OSARCH%.exe
restart.au3 --restart
ButtonBar\TCrestart2.ico
* по умолчанию
%COMMANDER_PATH%\ 

Добавлено: Ср ноя 09, 2016 16:57
MVV
Flasher писал(а):У тебя поле "Путь запуска:" отломалось?
Я крайне редко это поле задаю, и на то есть ряд причин. Часто нужно запускать именно в текущей папке, при этом я тоже довольно часто перехожу в папку с программой из кнопки через пункт cd её контекстного меню.
Вообще есть такое. Но вопрос в том, где не наследуется. В параметре комстроки или только в коде.
Не наследуется окружением запускаемого с повышением процесса, поэтому переменную необходимо передавать в раскрытом виде, а поле параметров этого не позволяет.
Skif_off писал(а):На Win7x64 вот так не работает (Файл не найден!):
Похоже, у нас очччень разные Win7x64, ибо у меня работает.

Код: Выделить всё

"%ADM%%AutoIt%" "%COMMANDER_PATH%\restart.au3" --restart

Код: Выделить всё

SetEnv AUTOIT %COMMANDER_PATH%\cmdline.exe
SetEnv пробовал и с /EV-, всё равно работает.

Добавлено: Ср ноя 09, 2016 17:28
Flasher
MVV писал(а):Часто нужно запускать именно в текущей папке
Для этого есть "%P".
MVV писал(а):при этом я тоже довольно часто перехожу в папку с программой из кнопки через пункт cd её контекстного меню
Отлично, в том числе для этого и нужен "Путь запуска". Вот если бы ты написал, что тебе нужно переходить к файлу (exe, скрипт), как я это делаю, то - другое дело.
MVV писал(а):Не наследуется окружением запускаемого с повышением процесса
Вот я и спрашиваю про момент, когда это окружение возникает.

Добавлено: Ср ноя 09, 2016 20:57
MVV
Для этого есть "%P".
Это несколько иная сущность, ею рабочую папку процесса не задашь.
Отлично, в том числе для этого и нужен "Путь запуска".
Его надо задавать явно, и если его задать явно, то рабочая папка запускаемого процесса будет фиксирована. А с пустым полем и переход из контекстного меню работает, и рабочая папка текущая.
Вот я и спрашиваю про момент, когда это окружение возникает.
Возникает в недрах винды где-то в момент запуска процесса с повышением, точнее не скажу. :)

Добавлено: Чт ноя 10, 2016 00:49
Flasher
MVV писал(а):ею рабочую папку процесса не задашь
Скриптом, утилитой типа nircmd почему нет?
MVV писал(а):Его надо задавать явно, и если его задать явно, то рабочая папка запускаемого процесса будет фиксирована.
Так если ты не задашь явно, то и перейти через меню в данном случае никуда не сможешь, ибо спереди %ADM%, не говоря уже про случаи, когда нужная программа идёт в качестве параметра (не первой в строке), а такого добра выши крыши.

Добавлено: Чт ноя 10, 2016 07:33
Skif_off
Flasher писал(а):Но в таком случае не вижу смысла в кавычках в первом поле. Зачем ты их ставишь?
Наверное, потому что путь, который может содержать пробелы, должен быть в кавычках?
MVV писал(а):Похоже, у нас очччень разные Win7x64, ибо у меня работает.
Не знаю, ничего особенного с ОСью не делал. Не ребутал недели две, но это вроде немного.