|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
Имеется две программы, скажем Прога1.ехе и Прога 2.ехе Прога2.ехе должна убить процесс Прога1.ехе на основании hWnd её главного окна. Делаю это так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Работает нормально. Но если то-же самое сделать во время того, как Прога1.ехе зависла - то зависает и Прога2.ехе, пока не закроется Прога1.ехе Хотя с диспетчера задач убивается сразу. Вопрос: как снабдить Прогу2.ехе такими же привилегиями для убивания процесса, как и у диспетчера задач? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 13:01 |
|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
попробуйте ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 13:21 |
|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
Konst_One Код: vbnet 1.
попробуйте Нет, не помогло. То-же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 14:45 |
|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
Я обнаружил, что тормозит на этой строке: Код: vbnet 1.
может здесь надо что-то поменять? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 14:50 |
|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
можете вообще пока убрать эти 2-е строки кода Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 14:58 |
|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
Konst_Oneможете вообще пока убрать эти 2-е строки кода Код: vbnet 1. 2.
Так и сделал. Тормозить перестало. Но и процесс не убивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 15:34 |
|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
может у вас неправильно hwnd определяется или это не главное окно программы? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 15:43 |
|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
donpaulsХотя с диспетчера задач убивается сразу. Вопрос: как снабдить Прогу2.ехе такими же привилегиями для убивания процесса, как и у диспетчера задач? Ну во-первых не всегда все сразу убивается даже из диспетчера, иногда по много раз жать надо. Далее, а почему б вам через Shell не воспользоваться системной утилитой, туда все API уже давно и правильно заложены: Microsoft WindowsC:\Documents and Settings\Дима>taskkill /? TASKKILL [/S <система> [/U <пользователь> [/P [<пароль>]]]] { [/FI <фильтр>] [/PID <процесс> | /IM <образ>] } [/F] [/T] Описание: Эта команда позволяет завершить один или несколько процессов. Процесс может быть завершен по имени образа или по идентификатору процесса. Список параметров: /S <система> Подключаемый удаленный компьютер. /U [<домен>\]<пользователь> Пользовательский контекст, в котором должна выполняться эта команда. /P <пароль> Пароль для этого пользовательского контекста Запрашивает пароль, если он не задан. /F Принудительное завершение процесса /FI <фильтр> Отображение задач, отвечающих указанному в фильтре критерию. /PID <процесс> Идентификатор процесса, который требуется завершить. /IM <образ> Имя образа процесса, который требуется завершить. Для указания всех процессов можно использовать символ шаблона '*'. /T Завершение указанного процесса и всех его дочерних процессов. /? Вывод справки по использованию. Фильтры: Имя фильтра Допустимые операторы Допустимые значения ----------- -------------------- ------------------- STATUS eq, ne RUNNING | NOT RESPONDING IMAGENAME eq, ne Имя образа PID eq, ne, gt, lt, ge, le Значение PID SESSION eq, ne, gt, lt, ge, le Номер сессии CPUTIME eq, ne, gt, lt, ge, le Время CPU в формате hh:mm:ss. hh - часы, mm - минуты, ss - секунды MEMUSAGE eq, ne, gt, lt, ge, le Использование памяти в КБ USERNAME eq, ne Имя пользователя в формате [<домен>\]<пользователь> MODULES eq, ne Имя DLL SERVICES eq, ne Имя службы WINDOWTITLE eq, ne Заголовок окна Примечание: Символ '*' для параметра /IM применим только совместно с фильтрами. Примечание: Завершение удаленных процессов всегда будет принудительным, независимо от того, был ли использован параметр /F или нет. Примеры: TASKKILL /S <система> /F /IM notepad.exe /T TASKKILL /PID 1230 /PID 1241 /PID 1253 /T TASKKILL /F /IM notepad.exe /IM mspaint.exe 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*" Далее, а может лучше попытаться понять почему виснет Прога1.ехе "Умный в гору не пойдёт,умный гору обойдёт". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 15:47 |
|
Как убить зависшее приложение?
|
|||
---|---|---|---|
#18+
Дмитрий77, Не нашёл примера если надо прибить программу не по имени процессу, а по расположению exe файла. (Файлов запущено несколько с одинаковыми именами но с разных каталогов, а прибить надо один) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2012, 16:45 |
|
|
start [/forum/topic.php?fid=60&gotonew=1&tid=2157571]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 324ms |
total: | 465ms |
0 / 0 |