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

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

Как лучше закрыть чужое приложение?


Шишкин Илья ©   (2003-05-28 16:42:00) 

Как закрыть чужое приложение, зная путь к файлу (например C:\Windows\NotePad.exe), чтобы программа сохранила всю информацию? (В случае с блокнотом, надо чтобы появился запрос на сохранение документа)


Suntechnic   (2003-05-28 17:56:00) [1]

>Шишкин Илья ©
Этот код просто убъёт процесс. Даже не освободив память.

Память освободится вместе с убиенным :), так что об этом можно не волноваться.


Шишкин Илья   (2003-05-28 17:45:00) [2]

2 Novichek
Этот код просто убъёт процесс. Даже не освободив память.


Novichek   (2003-05-28 16:59:00) [3]

правда я не уверен что появится запрос на сохранение документа
procedure KillProgram(ClassName: PChar; WindowTitle: PChar);
const
PROCESS_TERMINATE = $0001;
var
ProcessHandle : THandle;
ProcessID: Integer;
TheWindow : HWND;
begin
TheWindow := FindWindow(Classname, WindowTitle);
GetWindowThreadProcessID(TheWindow, @ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
TerminateProcess(ProcessHandle,1);
end;


clickmaker   (2003-05-28 16:58:00) [4]

Послать главному окну сообщение WM_CLOSE. Но зная путь, можно найти процесс, а не окно. Даже если найдешь все окна процесса, главное из них выделить не всегда удастся. А убийство самого процесса приведет к потере данных...


Наверх

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