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;





Posted by bloodguy
,