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

Вниз

XP->Kill->Explorer   Найти похожие ветки 

 
Newton ©   (2004-01-19 05:06) [0]

Каким образом можно убить процесс Explorera в XP чтоб он повторно не вылез(обычные способы убивания процесса просто его перезагружают).


 
VMcL ©   (2004-01-19 06:57) [1]

Зачем?


 
DeadMeat ©   (2004-01-19 16:29) [2]

Ну как зачем?... чтоб он повторно не вылез


 
DVM ©   (2004-01-19 18:06) [3]


> Каким образом можно убить процесс Explorera в XP чтоб он
> повторно не вылез(обычные способы убивания процесса просто
> его перезагружают).

Перезагружает его система, потому как в качестве оболочки прописан эксплорер. Убить то можно с пом. TerminateProcess, но лучше до убийства изменить ту строчку в реестре, где прописана оболочка. Тогда он и "не вылезет".


 
Игорь Шевченко ©   (2004-01-19 18:49) [4]

DVM ©   (19.01.04 18:06)


> но лучше до убийства изменить ту строчку в реестре, где
> прописана оболочка.

пробовал ?


 
DVM ©   (2004-01-19 19:04) [5]


> пробовал ?

Да. В XP получается - стартует то, что туда прописал. Да и без этого у меня убить окончательно тоже получилось с пом. TerminateProcess.


 
DeadMeat ©   (2004-01-19 22:29) [6]

А если не надо ничего стартовать, а просто убить...?
Как вариант конечно можно прописать адрес своей программы, которая сразу выйдет при запуске, но есть же и другой способ... Как например это делает сам TaskManager??...


 
DVM ©   (2004-01-20 17:05) [7]

вот, убивает эксплорер с первого раза и рестарт не происходит. Там, не все правильно, но работает.

function KillTask(FileName:String):integer;
var
 ContinueLoop:BOOL;
 FSnapshotHandle:THandle;
 FProcessEntry32:TProcessEntry32;
const
 PROCESS_TERMINATE=$0001;
begin
 FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
 ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
 while integer(ContinueLoop)<>0 do
 begin
   if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile))=UpperCase(FileName))
     or (UpperCase(FProcessEntry32.szExeFile)=UpperCase(FileName)))  then
       Result:=Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE,BOOL(0),
         FProcessEntry32.th32ProcessID),1));
   ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
 end;
 CloseHandle(FSnapshotHandle);
end;


 
DeadMeat ©   (2004-01-20 18:54) [8]

Ну вот... А я всё время пользовался TerminateProcess (...,0) либо его ExitCode... Теперь буду знать...



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
7-1074163178
axx
2004-01-15 13:39
2004.04.04
Штрих сканер


14-1077970777
JohnnyCrisJoe
2004-02-28 15:19
2004.04.04
Линковка Delphi-dll библиотеки к С++ проекту


1-1079628243
}|{yk
2004-03-18 19:44
2004.04.04
Глупый вопрос конечно. Про перебор алфавита


14-1078400558
NailMan
2004-03-04 14:42
2004.04.04
Защищенная флешка-ключ


1-1079104462
Ysp1
2004-03-12 18:14
2004.04.04
Есть Handle как узнать путь к ехе-шнику