Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.20;
Скачать: CL | DM;

Вниз

Как убить любой процесс?   Найти похожие ветки 

 
Intell ©   (2004-01-06 16:47) [0]

Вот у меня в списке ListBox1 запущенные приложения (Caption, Title и др.) - как убить процесс, а то бывает какая-нибудь прога зависнет - так её иногда даже Ctrl+Alt+Del не берёт. Я хочу завершить зависший процесс в любом случае (без зависания компа).

Если нужно подробнее, то опишу.


 
Тимохов ©   (2004-01-06 16:48) [1]

Ты способен завесить win2k?


 
DVM ©   (2004-01-06 16:49) [2]

Если в w2000 Ctrl+Alt+Del не берет, то вряд ли получится завершить. В любом случае TerminateProcess().


 
alex_*** ©   (2004-01-06 16:49) [3]

Power off. Безотказно.


 
Intell ©   (2004-01-06 16:51) [4]

alex_*** - приколист...! TerminateProcess() не катит, я им пользуюсь, но он иногда не срабатывает - прога не закрывается.


 
DVM ©   (2004-01-06 16:54) [5]


> Intell © (06.01.04 16:51) [4]
> alex_*** - приколист...! TerminateProcess() не катит, я
> им пользуюсь, но он иногда не срабатывает - прога не закрывается.

Другого средства нет. Возьмите программу ProcessExplorer с www.sysinternals.com Руссиновича. Если она не убивает ваши неубиваемые приложения, то и Вам убить не суждено.


 
Intell ©   (2004-01-06 16:57) [6]

Жаль, так хотелось написать прогу...


 
YuRock ©   (2004-01-06 17:31) [7]

> alex_*** - приколист...! TerminateProcess() не катит, я им пользуюсь, но он иногда не срабатывает

TerminateProcess() всегда срабатывает, просто иногда он возвращает FALSE - когда закрыть не удается. А закрыть может не удаваться по 3-м причинам (по крайней мере, в NT-base):

1. C хендлом процесса что-то не то (например, такого нет);

2. У Вас (Вашей программы) не хватает привелегий. Чтобы хватило, вначале подключитесь к этому процессу, например, с отладочными привелегиями;

3. Если Вы не администратор компьютера.


 
Intell ©   (2004-01-06 17:59) [8]

2. У Вас (Вашей программы) не хватает привелегий. Чтобы хватило, вначале подключитесь к этому процессу, например, с отладочными привелегиями;

Скорее всего так и есть - как тогда получить привелегии?


 
zapped ©   (2004-01-06 18:07) [9]

Process Killer специально для этого сделан


 
YuRock ©   (2004-01-06 18:14) [10]

> как тогда получить привелегии?


procedure SetDebugPrivileges(hProcess: THANDLE);
var
hToken : THANDLE;
tkp : TTokenPrivileges;
rl : DWORD;

begin
rl := 0;
OpenProcessToken(hProcess, (TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY), hToken);
if not (LookupPrivilegeValue(nil, LPSTR("SeDebugPrivilege"), tkp.Privileges[0].Luid)) then Exit;
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, rl);
end;


 
Intell ©   (2004-01-06 18:23) [11]

zapped - какое совпадение, я точно такую же прогу пишу (точно такое же название). Просто это у меня уже v3.2 будет, хочу уж вообще всё исправить (чтобы работала на все 100%).


 
Intell ©   (2004-01-06 18:25) [12]

YuRock, т.е. благодаря этому коду моя программа будет иметь повышенные привелегии в системе?


 
YuRock ©   (2004-01-06 18:28) [13]

Любые, если ты админ компа. Ты даже сможешь снять (если смелый) такие процессы, как CSRSS.EXE, EXPLORER.EXE...

Но, по-моему, только в Win NT/2k/XP/03


 
Intell ©   (2004-01-06 18:32) [14]

Я администратор. По поводу Explorer - у меня вшита защита, вместо закрытия - либо перезагрузка (при этом задаётся вопрос), либо просто рестарт Explorer`а. (это чтобы мою прогу как западлостроение не использовали, а то там стоит сканер для закрытия запрещённых процессов. Представляете что будет, если запретить Explorer?)


 
YuRock ©   (2004-01-06 18:47) [15]

> Intell © (06.01.04 18:32) [14]

Да ничего страшного... Ну, максимум синий экран.

В общем, как знаете... Я предложил способ снимать любые процессы (что и спрашивалось), а использовать ответ или нет - дело хозяйское.


 
Intell ©   (2004-01-06 19:54) [16]

А я его и буду использовать. Будущее покажет - помогает код или нет, так как редко сталкиваюсь с такими зависшими программами.


 
raidan ©   (2004-01-06 21:38) [17]

Если explorer закрывается, то будет пустой экран с фоновой картинкой.
Приложения работать будут (те, которые запущены)...
Ctrl+Alt+Del работать также будет...
Запускаешь explorer.exe - все начинает опять работать :)
Explorer - это не ядро. Это шелл и не более чем.
Как "менеджер программ" в славном Win 3.x :)
Можно сделать свой шелл и пускать вместо эксплорера :)
Я пробовал - ничего не виснет, но и ничего не работает, кроме твоей проги (в смысле, кнопка Win, панель задач, и прочее) :)))


 
Intell ©   (2004-01-06 21:42) [18]

Если explorer закрывается, то будет пустой экран с фоновой картинкой.
Приложения работать будут (те, которые запущены)...
Ctrl+Alt+Del работать также будет...
Запускаешь explorer.exe - все начинает опять работать :)

У меня защита и от этого есть - я уже и забыл, что Explorer может потухнуть. Прога автоматом его загружает если тот вылетает.


 
Конница Будённого   (2004-01-06 21:57) [19]

Вы знаете, в выньХР имеет смысл использовать taskkill - у меня рубает даже lsass.exe и все svchost.exe.
когда я испробовал эту команду под вин 2003 сервер, я на неё нарадоваться не мог... рубил всю сеть броадкастом - веселуха страшная была... все думали, что мсбласт вернулся
совет для ХР: taskkill и tasklist


 
y-soft ©   (2004-01-06 22:03) [20]

С привилегией на отладку убить можно даже Winlogon
Только зачем?

Завесить W2K тоже можно при большом желании. Но не нужно


 
Intell ©   (2004-01-06 23:35) [21]

Никто не собирался вешать виндовоз! (по крайней мере я). Я хочу вырубать зависшие процессы безопасно для системы. Если бы я хотел повесить Windows, то у меня есть код для зависания любого виндовоза, не пробовал его только в XP. А в других комп моментально вис.



Страницы: 1 вся ветка

Текущий архив: 2004.01.20;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.02 c
1-63082
Ega23
2004-01-08 15:49
2004.01.20
try except


14-63297
kaif
2003-12-27 03:32
2004.01.20
Что означает верить в себя?


1-63173
real_dimedrol
2004-01-10 17:49
2004.01.20
Virtual Listview


1-63140
miracle_fox
2004-01-07 15:52
2004.01.20
добавить из файла в richedit


14-63357
sync
2003-12-29 22:05
2004.01.20
Помогите разобраться с протаколами