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

Вниз

Убить приложение зная только его исполняемый файл   Найти похожие ветки 

 
Yuri Btr   (2002-05-31 15:01) [0]

Проблема весьма специфична. Имеется приложение, главная форма которого свёрнута, а в трее - иконка. В свёрнутом состоянии я так и несмог определить window title (и следовательно handle)главного окна этой программы. SPY++ и WinSight32 при просмотре инфы об этом приложении дают только длинный набор неупорядоченных символов. Мне нужно рестартовать это приложение, имея только имя его исполнительного файла.
Помогите пожалуйста. По видимому надо использовать EnumProcesses ?
Заранее спасибо.


 
Yuri Btr   (2002-06-03 16:24) [1]

Ну кто нибудь из мастеров, подкиньте пожалуйста идею.
Очень нужно убить приложение зная имя исполнительного файла.
Наверняка кто то знает ответ.


 
Song   (2002-06-03 17:26) [2]

TerminateProcess()


 
Cobalt   (2002-06-03 19:49) [3]

На RSDN есть пример поиска процессов в Вин9Х и НТ


 
MARcoDEN   (2002-06-03 21:14) [4]

Вот пример из моей программы:

var
PHandle: THandle;
ProcEntry:TProcessEntry32;
hProcess:THandle;
begin
PHandle:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0);
ProcEntry.dwSize:=sizeof(TProcessEntry32);
if (Process32First(PHandle, ProcEntry)) then
repeat
if ExtractFileName(ProcEntry.szExeFile) = "DIRECTCD.EXE" then
begin
// Получаем дескриптор процесса для его завершения
hProcess := OpenProcess(PROCESS_TERMINATE, FALSE, ProcEntry.th32ProcessID);
if hProcess = 0 then showmessage("Wrong Handle")
else
// Завершаем процесс
if not TerminateProcess(hProcess, DWORD(-1))
then showmessage("Couldn""t terminate process")
else showmessage("Process was terminated successfully");
CloseHandle( hProcess );
end;
until not Process32Next(PHandle, ProcEntry)


 
Yuri Btr   (2002-06-04 13:14) [5]

Спасибо to MARcoDEN
Только что надо подключить в USES, чтоб заработал TProcessEntry32?


 
Yuri Btr   (2002-06-04 15:13) [6]

Ура!!!
Всё работает, но есть процесс, который на
OpenProcess(PROCESS_TERMINATE, FALSE, ProcEntry.th32ProcessID)
выдаёт 0
Что это означает??? (У меня нет прав на убийство?)
И как я могу убить этот процесс, ведь из TaskManagera он прекрасно завершается....


 
Anatoly Podgoretsky   (2002-06-04 15:17) [7]

Это означает, что он не самоубийца :-)


 
Yuri Btr   (2002-06-04 16:01) [8]

to Anatoly Podgoretsky
Спасибо, очень ценное замечание :)

Ну а всё таки, как мне открыть процесс с правом на уничтожение?
Помогите решить эту проблему пожалуйста.



 
ДОБРОЖИЛАТЕЛ   (2002-06-05 09:34) [9]

TO Anatoly Podgoretsky © ТЫ НАВЕРНО ПОВЕРИЛ КАК ЭТО

(Это означает, что он не самоубийца :-)


ПОЭТОМУ И ЕРЕДНИЧАЕШЬ......................



 
cdaDmitriy   (2002-06-05 11:39) [10]

to Anatoly Podgoretsky СЛОВО НЕ ВОРОБЕЙ ВЫЛЕТИТ НЕ .........


 
Yuri Btr   (2002-06-06 16:02) [11]

Спсасибо ещё раз всем, но тот неубиваемый процесс оказался сервисом с правами System. Я применил sc.exe для остановки его,
но это справедливо для 2000 и XP, а в NT я к сожалению не знаю как остановить сервис наверное "net stop" и "net start"



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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
1-35348
Александр
2002-07-28 18:37
2002.08.12
Файлы


14-35428
MIFI
2002-07-07 12:12
2002.08.12
Люди в чорном 2


8-35391
-=Dimedrol=-
2002-04-07 10:36
2002.08.12
Примитивы в DelphiX


1-35379
V.Turecky
2002-07-30 19:24
2002.08.12
Как сделать компонент TCheckBox прозрачным?


1-35273
Игорь С.
2002-07-31 15:08
2002.08.12
Чтение файла в буфер, для последующей работы...





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