/// <summary> /// 关闭窗口 /// </summary> /// <param name="windowName">窗口名称</param> public static void CloseWindow(string windowName) { var hWnd = Win32Funcs.FindWindowWrapper(null, windowName); if (!hWnd.Equals(IntPtr.Zero)) { Win32Funcs.SendMessageWrapper(hWnd, Win32Consts.WM_CLOSE, IntPtr.Zero, IntPtr.Zero); } }
/// <summary> /// 将窗口置顶 /// </summary> /// <param name="hWnd">窗口句柄</param> public static void SetWindowTopMost(IntPtr hWnd) { //SWP_NOSIZE:维持当前尺寸(忽略cx和cy参数) //SWP_NOMOVE:维持当前位置(忽略X和Y参数) const uint flags = Win32Consts.SWP_NOSIZE | Win32Consts.SWP_NOMOVE; Win32Funcs.SetWindowPosWrapper(hWnd, Win32Consts.HWND_TOPMOST_PTR, 0, 0, 0, 0, flags); Win32Funcs.SendMessageWrapper(hWnd, Win32Consts.WM_SETFOCUS, IntPtr.Zero, IntPtr.Zero); Win32Funcs.SetForegroundWindowWrapper(hWnd); }
public static void RestoreWindow(IntPtr hWnd) { Win32Funcs.SendMessageWrapper(hWnd, Win32Consts.WM_SYSCOMMAND, new IntPtr(Win32Consts.SC_RESTORE), IntPtr.Zero); //还原 }
public static void MaximizeWindow(IntPtr hWnd) { Win32Funcs.SendMessageWrapper(hWnd, Win32Consts.WM_SYSCOMMAND, new IntPtr(Win32Consts.SC_MAXIMIZE), IntPtr.Zero); //最大化 }