Windows Explorer 재시작시 TaskBar 갱신 처리

From YYpBD's MediaWiki

Jump to: navigation, search
트레이에 아이콘을 등록해놓은 상황에서 윈도우 탐색기가 죽거나 하면 작업표시줄이 사라졌다가 다시 생성되면서 트레이에 등록해놓았던 아이콘이 보이지 않는 현상이 발생한다.

어떤 프로그램은 다시 보이고 어떤 프로그램은 안보이는 것을 볼수 있을 것이다.
잘 처리를 잘 했으니 그러겠지?

우리도 한번 해보자 -_-;;;

작업표시줄이 생성되었다는 것을 등록할 변수를 하나 생성한다.

var
    dwTaskbarCreated: dword;

그리고 폼이 생성될때 작업표시줄 생성 메시지를 등록한다.

  dwTaskbarCreated  := RegisterWindowMessage('TaskbarCreated');

그다음에 WndProc에서 작업표시줄 생성 메시지를 처리해준다

procedure TfrmMain.WndProc(var Message: TMessage);
begin
  if (dwTaskbarCreated <> 0) and (Message.Msg = dwTaskbarCreated) then
  begin
    // todo : 여기서 작업을 처리해준다.
    Exit;
  end;

  inherited WndProc(Message);
end;

현재 트레이에 아이콘을 등록해둔 상황이라면 다시 아이콘을 등록해주면 된다.

혹시나 Tray 등록을 모른다면 그건 다음 기회에 -_-;;;;

맞춤검색