예제 #1
0
 public void UpdateRectAndWindowState()
 {
     WinApi.WindowPlacement windowPlacement = WinApi.GetWindowPlacement(Hwnd.Handle);
     if (windowPlacement != null)
     {
         WinState = windowPlacement.WinState;
         Rect     = ((WinState == WindowState.Maximized) ? WinApi.GetWindowRectangle(Hwnd.Handle) : windowPlacement.RestoreWindow);
     }
     preUpdateRectAndWindowStateIfNeedTime = DateTime.Now;
 }
예제 #2
0
 private void ListenDeskLocatoinChanged()
 {
     if (_isLocationChanged || (DateTime.Now - _preUpdateLocationTime).TotalSeconds >= 2)
     {
         _isLocationChanged     = false;
         _preUpdateLocationTime = DateTime.Now;
         WinApi.WindowPlacement windowPlacement = WinApi.GetWindowPlacement(Hwnd.Handle);
         if (windowPlacement != null)
         {
             WinState    = windowPlacement.WinState;
             RestoreRect = windowPlacement.RestoreWindow;
         }
     }
 }