Имя: Пароль:
IT
Админ
убивание запущенного приложения
,
0 serianomer
 
18.08.12
08:49
в планировщике задач прописан батник который запускает приложение (1С)
можно ли как то-то сделать, чтобы после н-секунд закрывалось приложение, запущенное этим батником?
1 andrewks
 
18.08.12
08:54
можно. пауза и tskill
2 BuHu
 
18.08.12
08:58
(0)можно даже , что бы 1с сама себя закрывала
3 1C-band
 
18.08.12
08:59
Тем же планировщиком.
4 BuHu
 
18.08.12
09:01
(0)что делает приложение , обмен?
5 serianomer
 
18.08.12
09:43
(2) это не подходит,
(1,3) а можно пример
6 Wobland
 
18.08.12
10:53
Примеры:
 TASKKILL /IM notepad.exe
 TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
 TASKKILL /F /IM cmd.exe /T
 TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
 TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
 TASKKILL /S <система> /U <домен>\<пользователь> /FI "USERNAME ne NT*" /IM *
 TASKKILL /S <система> /U <пользователь> /P <пароль> /FI "IMAGENAME eq note*"
7 Fragster
 
гуру
18.08.12
11:27
прав здесть только (2)
8 smaharbA
 
18.08.12
11:57
все делается в самом бвтнике и шедулере, батник неотличается от исходного и ненужны никакие таскилы
9 andrewks
 
18.08.12
12:33
(8) ты про это?  http://savepic.su/2338020.htm
10 smaharbA
 
18.08.12
13:31
(9) да, но и внешее приложение из пакетника должно быть запущено правильной строкой
11 Torquader
 
19.08.12
00:16
(10) Ну конечно, можно с ключом ожидания запустить.
Только, мне кажется, что "убивание" приложения - это как из пушки по воробьям, да и данным будет не очень хорошо.
Можно накатать программку, которая будет отслеживать состояние 1С через WaitForInputIdle запущенного процесса и слать ALT+F4 или сразу WM_CLOSE для основного окна, чтобы 1С завершилась (но тут ещё нужно поймать диалог с вопросом и "пнуть" его в нужном направлении).
По крайней мене у меня получается, только у меня запускается служба и из себя стартует 1С, которой может управлять, нажимая кнопки в форме.
12 serianomer
 
19.08.12
15:41
(11)с каким ключом не подскажите?
13 Jump
 
19.08.12
15:48
(10)А на зависшем или ждущем  сохранения приложении это сработает? Вроде там команда приложению на завершение идет, а не принудительное убивание, или нет?
14 serianomer
 
19.08.12
18:03
(9) тут настройка только в минутах и часах
нужно завершить работу приложения через ~10 секунд после начала
15 BuHu
 
19.08.12
18:13
(14) может ты все таки расскажешь ,что запущенное приложение делает? и почему (2) тебе не подходит?
16 serianomer
 
19.08.12
18:16
(15)ситуация сложная, 1С себя конечно закрывает, когда все хорошо.
17 BuHu
 
19.08.12
18:19
(16) т.е. не расскажешь?
18 serianomer
 
19.08.12
18:21
(17)а зачем?
19 Torquader
 
19.08.12
23:33
(12) Ключ ожидания завершения /wait /b
только нет гарантии, что новый процесс окажется в той же группе и будет корректно завершён при аварийном завершении bat-файла.
Если у вас процесс Win32, то он может быть убит, пока не создал собственное окно, так как в противном случае система отключает его от текущей консоли, и выполняется только Wait(ProcessHandle).
С другой стороны, если есть ссылка на процесс (ProcessHandle), то можно выполнить TerminateProcess, которая выполняет аварийное завершение процесса, но для последнего это будет смертельно.