Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизКак убить любой процесс? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c