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

Вниз

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

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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
7-35479
Apocalypsys
2002-04-24 18:07
2002.08.12
BIOS&Timer


3-35202
Genry
2002-07-23 15:21
2002.08.12
Проверка значений в DBGrid e


3-35161
Alex Shulg
2002-07-22 13:34
2002.08.12
Не работает AutoInc поля


1-35238
ilg
2002-07-30 16:55
2002.08.12
Компонент на основе TLabel


4-35508
Sniffer
2002-06-04 15:12
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский