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

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

Закрытие процесса [D7, WinXP]


Страницы:   1 2 3 4 5

Alex870 ©   (2005-06-21 13:46:00) 

Подскажите пожалуйста, можно ли перехватить закрытие процесса моего приложения, выполнить какие-либо действия, а потом завершить процесс. Приложение у меня без формы:
program MyProg;
uses
Windows, messages;

var
M : tagMSG;

begin
while GetMessage( M, HInstance, 0, 0) do
   begin
    TranslateMessage(M);
    DispatchMessage(M);
   end;
end.

Если нет, подскажите, может создание формы поможет? Спасибо


Игорь Шевченко   (2005-06-21 15:41:00) [81]

MS-REM   (21.06.05 15:32) [9]

Эта...долго читал, нифига не понял, где там слово "подмена ID процесса на 0 или меньше нуля"...А главное, зачем эта подмена нужна.

"Народ требует разъяснений"


kaZaNoVa   (2005-06-21 15:33:00) [82]

MS-REM   (21.06.05 15:16) [6]
ID процесса не может быть равно 0 .. возможно Вы намекаете на "подмену" ID ? имхо это неприемлимо в норимальных задачах :)


MS-REM   (2005-06-21 15:32:00) [83]

Игорь Шевченко ©   (21.06.05 15:18) [7]
С этого места подробнее, про секретный прибор,
о котором не знали физики.

http://wasm.ru/article.php?article=apihook_3

Причем здесь физики.


Alex870   (2005-06-21 15:24:00) [84]


> MS-REM


> Если ID процесса перевести в нуль или ниже нуля.

Не могли бы пояснить, что значит ID процесса перевести в нуль, и что это даст.

> kaZaNoVa ©   (21.06.05 14:58) [5]

Мысль хорошая, но как запасной вариант, если не найду, как реализовать в одном приложении, однако большое спасибо!


Игорь Шевченко   (2005-06-21 15:18:00) [85]

MS-REM   (21.06.05 15:16) [6]


> Если ID процесса перевести в нуль или ниже нуля.


С этого места подробнее, про секретный прибор, о котором не знали физики.


MS-REM   (2005-06-21 15:16:00) [86]

Есть решение.

Если ID процесса перевести в нуль или ниже нуля.


kaZaNoVa   (2005-06-21 14:58:00) [87]

Удалено модератором
Примечание: Offtopic


Alex870   (2005-06-21 14:14:00) [88]

Окно создать не проблема, если это нужно для решения данной задачи, только оно должно быть невидимым. Я написал так
program ati2evxx;

uses
Windows, messages;

var
M : tagMSG;
wc : WndClass;
wndMain : HWND;

function WindowProc(wnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT; stdcall;
begin
case msg of
WM_CLOSE : beep(100,100);
WM_DESTROY :
 begin
   postquitmessage(0);
   Result:=0;
   exit;
 end; else Result:=DefWindowProc(wnd,msg,wParam,lParam);
end;
end;

begin
wc.style:=CS_HREDRAW or CS_VREDRAW;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0,IDI_APPLICATION);
wc.hCursor:=LoadCursor(0,IDC_ARROW);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:='Main';
RegisterClass(wc);
wndMain:=CreateWindow('Main','',ws_overlappedwindow,10,10,100,100,0,0,hInstance,nil);
while GetMessage( M, 0, 0, 0) do
   begin
    TranslateMessage(M);
    DispatchMessage(M);
   end;
end.

Но результатов (положительных) не получил.


Игорь Шевченко   (2005-06-21 14:01:00) [89]


> можно ли перехватить закрытие процесса моего приложения,
> выполнить какие-либо действия, а потом завершить процесс


Если приложение с окном, то Task Manager при снятии приложения посылает окну WM_CLOSE, иначе никак.


kaZaNoVa   (2005-06-21 13:52:00) [90]

хотя ..  я не понял, он у тя с окном?


kaZaNoVa   (2005-06-21 13:51:00) [91]

если закрывают методом TerminateProcess   или внедрением + Halt() то никак:(


Страницы:   1 2 3 4 5

Наверх

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