[Delphi] 작업표시줄 시계부분 위치찾기


작업표시줄 위치에 상관없이

시계부분에 팝업을 띄우기 위해서 


var

  h: HWND;

  WorkRect: TRect;

  BarData: TAppBarData;


begin


  h := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil);

  GetWindowRect(h, &WorkRect);


  BarData.HWND := 0;

  BarData.cbSize := sizeof(BarData);

  SHAppBarMessage(ABM_GETTASKBARPOS, BarData);


  case BarData.uEdge of

    0: // ABE_LEFT

      begin

        self.Left := WorkRect.Right;

        self.Top := WorkRect.Bottom - self.Height;

      end;

    1: // ABE_TOP

      begin

        self.Left := WorkRect.Right - self.Width;

        self.Top := WorkRect.Bottom;

      end;

    2: // ABE_RIGHT

      begin

        self.Left := WorkRect.Left - self.Width;

        self.Top := WorkRect.Bottom - self.Height;

      end;

    3: // ABE_BOTTOM

      begin

        self.Left := WorkRect.Right - self.Width;

        self.Top := WorkRect.Top - self.Height;

      end;

  end;


end;





  1. 지나가는이 2017.07.04 12:52 신고

    이런 정보 감사드립니다
    좋은 정보네요

    그런데 복사좀 할수 있게 해주세요
    일일히 적을라니까 힘드네요