Форум: "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