Имя: Пароль:
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, которая выполняет аварийное завершение процесса, но для последнего это будет смертельно.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший