Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.031 c
1-1079585912
-= Evgeney =-
2004-03-18 07:58
2004.04.04
Реестр


3-1078212725
Anics
2004-03-02 10:32
2004.04.04
Как организовать циклический поиск по таблице?


1-1079588415
tatar
2004-03-18 08:40
2004.04.04
Copyfile RenameFele по маске


1-1079673885
Cobalt
2004-03-19 08:24
2004.04.04
Отладка программ


4-1075359956
ALS
2004-01-29 10:05
2004.04.04
Tray Icon





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский