Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Убить приложение зная только его исполняемый файл [D6, WinXP]


Yuri Btr ©   (2002-05-31 15:01:00) 

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


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

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


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

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


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

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

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


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


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

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

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


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

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


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

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


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

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


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

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

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)


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

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


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

TerminateProcess()


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо