50 lines
2.7 KiB
C#
50 lines
2.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
|
|
namespace SystemX.Net.Platform.Common.Util
|
|
{
|
|
public static class AppWinControl
|
|
{
|
|
public enum eShowType
|
|
{
|
|
SW_HIDE = 0, //Hides the window and activates another window.
|
|
SW_MAXIMIZE = 3, //Maximizes the specified window.
|
|
SW_MINIMIZE = 6, //Minimizes the specified window and activates the next top-level window in the Z order.
|
|
SW_RESTORE = 9, //Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.
|
|
SW_SHOW = 5, //Activates the window and displays it in its current size and position.
|
|
SW_SHOWDEFAULT = 10, //Sets the show state based on the SW_ value specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application.
|
|
SW_SHOWMAXIMIZED = 3, //Activates the window and displays it as a maximized window.
|
|
SW_SHOWMINIMIZED = 2, //Activates the window and displays it as a minimized window.
|
|
SW_SHOWMINNOACTIVE = 7, //Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED, except the window is not activated.
|
|
SW_SHOWNA = 8, //Displays the window in its current size and position. This value is similar to SW_SHOW, except that the window is not activated.
|
|
SW_SHOWNOACTIVATE = 4, //Displays a window in its most recent size and position. This value is similar to SW_SHOWNORMAL, except that the window is not activated.
|
|
SW_SHOWNORMAL = 1
|
|
}
|
|
|
|
[DllImport("user32.dll")]
|
|
public static extern IntPtr ExtGetWindowRect(IntPtr hWnd, out Rect lpRect);
|
|
|
|
[DllImport("user32.dll")]
|
|
public static extern bool ExtPrintWindow(IntPtr hWnd, IntPtr hdcBlt, int nFlags);
|
|
|
|
[DllImport("user32.dll")]
|
|
private static extern int ExtSetForegroundWindow(IntPtr hWnd);
|
|
|
|
private const int SW_RESTORE = 9;
|
|
|
|
[DllImport("user32.dll")]
|
|
private static extern IntPtr ExtShowWindow(IntPtr hWnd, int nCmdShow);
|
|
|
|
public static IntPtr GetWindowRect(IntPtr hWnd, out Rect lpRect) { return ExtGetWindowRect(hWnd, out lpRect); }
|
|
public static bool PrintWindow(IntPtr hWnd, IntPtr hdcBlt, int nFlags) { return ExtPrintWindow(hWnd, hdcBlt, nFlags); }
|
|
public static int SetForegroundWindow(IntPtr hWnd) { return ExtSetForegroundWindow(hWnd); }
|
|
public static IntPtr ShowWindow(IntPtr hWnd, int nCmdShow) { return ExtShowWindow(hWnd, nCmdShow); }
|
|
|
|
}
|
|
}
|