[Delphi] 윈도우 높은 권한에서 낮은 권한 메시지 받기



ChangeWindowMessageFilter 를 이용한다.

이 소스 진짜 원 출처는 어딘지 모르겠지만 일단 적어놓기.



type

  FCHANGEWINDOWMESSAGEFILTER = function(message: UINT; dwFlag: DWORD) : boolean; stdcall;



procedure TForm.FormCreate(Sender: TObject);

var

  h: HWND;

  MessageFilter: FCHANGEWINDOWMESSAGEFILTER;

begin

  h := LoadLibrary('USER32.DLL');
  if h <> 0 then
  begin
    try
      @MessageFilter := GetProcAddress(h, 'ChangeWindowMessageFilter');

      if @MessageFilter <> nil then
        MessageFilter(WM_USER+12, 1); // 받아야 하는 메시지로 변경 
    finally
      FreeLibrary(h);
    end;
  end;

end;