Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-63212
Dimaz-z
2004-01-09 20:17
2004.01.20
Замена смайликов на картинки в TRxRichEdit.


4-63432
DillerXX
2003-11-15 17:48
2004.01.20
StaticText


1-63175
HolyMan
2004-01-09 22:00
2004.01.20
Задачки с использованием COM


14-63394
reticon
2003-12-27 22:24
2004.01.20
Касательно Нового года...


3-62983
Silver_
2003-12-23 19:16
2004.01.20
Как через SQL сбацать такое





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский