Autorun
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3 ... 40, 41, 42 ... 133, 134, 135  Next  :| |:
Total Commander -> Плагины Total Commander

#601:  Author: KopBuHLocation: Tashkent, Uzbekistan PostPosted: Sun Dec 16, 2012 16:57
    —
Loopback:
Можете сделать команду для вызова выполнения внешнего скрипта, что-то вроде ExecCfg autorun_custom.cfg ?.

#602:  Author: FlasherLocation: Москва PostPosted: Sun Dec 16, 2012 17:11
    —
У кого-нибудь работает такая команда?
Code:
Pragma AutorunFinalizeSection

ShellExec /EV /SW_HIDE %comspec% '/c del C:\Sample.txt'

#603:  Author: KopBuHLocation: Tashkent, Uzbekistan PostPosted: Sun Dec 16, 2012 17:23
    —
Flasher wrote:
У кого-нибудь работает такая команда?
Code:
Pragma AutorunFinalizeSection

ShellExec /EV /SW_HIDE %comspec% '/c del C:\Sample.txt'


Так
Code:
ShellExec /EV /SW_HIDE cmd.exe '/c del C:\Sample.txt'

и так
Code:
ShellExec /EV /SW_HIDE '%COMSPEC%' '/c del C:\Sample.txt'

работает.


Last edited by KopBuH on Sun Dec 16, 2012 17:25; edited 1 time in total

#604:  Author: FlasherLocation: Москва PostPosted: Sun Dec 16, 2012 17:24
    —
Нужно именно при закрытии ТС.

#605:  Author: KopBuHLocation: Tashkent, Uzbekistan PostPosted: Sun Dec 16, 2012 17:27
    —
Flasher wrote:
Нужно именно при закрытии ТС.

добавь одинарные кавычки к строке %COMSPEC% - и всё заработает Wink
пример:
Code:
ShellExec /EV /SW_HIDE '%COMMANDER_PATH%\Macroses\sample.exe' ' -K "%RANDOM%" "%commander_path%\sample.txt"'


Last edited by KopBuH on Sun Dec 16, 2012 17:30; edited 1 time in total

#606:  Author: FlasherLocation: Москва PostPosted: Sun Dec 16, 2012 17:28
    —
Одинарные кавычки тут не нужны. Пробелов нет. Кавычки пользы не принесут. Просто баг похоже. То ли параметры не обрабатываются после директивы выхода, то ли с кавычками непорядок. Жду автора..

#607:  Author: Loopback PostPosted: Sun Dec 16, 2012 21:10
    —
KopBuH wrote:
Можете сделать команду для вызова выполнения внешнего скрипта, что-то вроде ExecCfg autorun_custom.cfg ?.

Нет, на текущей реализации это вряд ли получится. Единственное, что можно сделать - аналог include, т.е. включать в тело скрипта содержимое другого файла. Однако, в этом случае надо будет следить, чтобы не получилась вложенность условий.
Flasher wrote:
Кстати, Loopback, а ты можешь добавить возможность работы с условиями без переноса строк и EndIf, как в VB?

В текущей реализации нет, для этого нужен полноценный парсер с разбивкой на токены.
Flasher wrote:
У кого-нибудь работает такая команда?

У меня отработала, на WinXP и на Win7.

Но не исключено, что это опять проблема с одной из самых оригинальных функций WinAPI AssocQueryString, которая на всех системах выдает разные результаты. А иногда и на одной тоже разные.

Завтра сделаю дебажную версию, посмотрим, что там выдается.

#608:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Dec 16, 2012 21:33
    —
Quote:
Но не исключено, что это опять проблема с одной из самых оригинальных функций WinAPI AssocQueryString

А зачем вызывать эту странную функцию для команды ShellExec? С головой достаточно прямого вызова ShellExecuteEx...

#609:  Author: Loopback PostPosted: Sun Dec 16, 2012 22:37
    —
MVV wrote:
А зачем вызывать эту странную функцию для команды ShellExec?

ShellExecuteEx хороша, если нужно только запустить процесс и больше с ним ничего не делать. Однако когда я делал закрытие процесса при выходе, с ней возникли проблемы. Поэтому пришлось перейти на более предсказуемый CreateProcess.

#610:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Dec 16, 2012 23:52
    —
А какие проблемы-то? Дескриптор процесса она тоже может возвращать... Опиши, может разберемся.

#611:  Author: Loopback PostPosted: Mon Dec 17, 2012 14:58
    —
MVV wrote:
А какие проблемы-то?

Не помню точно, уже больше года прошло. Вроде не удавалось получить корректный pid из дескриптора процесса.

Flasher
Попробуй эту версию. В каталоге плагина будет создан файл debug.log, в нем для каждого вызова ShellExec три строчки. Скинь те, которые относятся к проблемному.

#612:  Author: FlasherLocation: Москва PostPosted: Mon Dec 17, 2012 18:03
    —
Loopback
Ничего особого нет.
Code:
Source: C:\WINDOWS\system32\cmd.exe
AssocExePath: %1
CmdLine: "C:\WINDOWS\system32\cmd.exe"

Проверял на XP и 7 x32.

#613:  Author: Loopback PostPosted: Mon Dec 17, 2012 18:18
    —
Flasher
Все правильно, у меня то же самое. Только при этом файл удаляет.

Случайно права на удаляемый файл не ограничены? Или может атрибут какой-нибудь системный стоит?

#614:  Author: FlasherLocation: Москва PostPosted: Mon Dec 17, 2012 18:40
    —
Loopback
Никаких ограничений. Просто команды не отрабатывают. С любым файлом так.

#615:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Dec 17, 2012 20:08
    —
Loopback,
Да, pid не получить просто так. Но нужен ли он тебе? У тебя же есть дескриптор, который можно использовать для проверки состояния процесса и его завершения. А что ты делаешь по pid?



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3 ... 40, 41, 42 ... 133, 134, 135  Next  :| |:
Page 41 of 135

Powered by phpBB © 2001, 2005 phpBB Group