DLL을 다른 프로세스에 Injection 해서,
DLL 안에 있는 Form을 생성하여,
굴려보면 OnActivate, OnDeactivate 가 안먹힘.
Spy++로 뒤져보니 포커스를 잃을 때 WM_COMMAND가 들어오길래 임시로 만들어 동작시킨 함수.
// interface
type
TfrmDll=class(TForm)
private
procedure WMCOMMAND(var Message: TMessage); message WM_COMMAND;
end;
// implementation
procedure TfrmDLL.WMCOMMAND(var Message: TMessage);
begin
// 포커스를 잃을 경우 폼 닫기
if Message.WParamHi=5 then Self.Close;
inherited;
end;
type
TfrmDll=class(TForm)
private
procedure WMCOMMAND(var Message: TMessage); message WM_COMMAND;
end;
// implementation
procedure TfrmDLL.WMCOMMAND(var Message: TMessage);
begin
// 포커스를 잃을 경우 폼 닫기
if Message.WParamHi=5 then Self.Close;
inherited;
end;
'Delphi' 카테고리의 다른 글
[Delphi] ContextMenu, FindWindow (0) | 2010.04.29 |
---|---|
[Delphi] CreateProcess 완료 시점 (WaitForInputIdle) (0) | 2010.04.28 |
[Delphi] 다른 어플리케이션에 Ctrl+V 보내기 (0) | 2010.04.26 |
[Delphi] 프로세스 실행시킨 후 해당 프로세스 종료시 같이 종료하기 (0) | 2010.04.26 |
[Delphi] 프로세스ID로 핸들, ThreadID 알아내기 (0) | 2010.04.26 |