win32
来源:互联网 发布:mac air能玩什么游戏 编辑:程序博客网 时间:2024/06/05 13:24
using System;using System.Runtime.InteropServices;using System.Drawing;using System.Text;namespace wsWin{ public class Win32 { public const int GW_HWNDFIRST = 0; public const int GW_HWNDLAST = 1; public const int GW_HWNDNEXT = 2; public const int GW_HWNDPREV = 3; public const int GW_OWNER = 4; public const int GW_CHILD = 5; public const int WM_NCCALCSIZE = 0x83; public const int WM_WINDOWPOSCHANGING = 0x46; public const int WM_PAINT = 0xF; public const int WM_CREATE = 0x1; public const int WM_NCCREATE = 0x81; public const int WM_NCPAINT = 0x85; public const int WM_PRINT = 0x317; public const int WM_DESTROY = 0x2; public const int WM_SHOWWINDOW = 0x18; public const int WM_SHARED_MENU = 0x1E2; public const int HC_ACTION = 0; public const int WH_CALLWNDPROC = 4; public const int GWL_WNDPROC = -4; internal const int SE_PRIVILEGE_ENABLED = 0x00000002; internal const int TOKEN_QUERY = 0x00000008; internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; internal const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; internal const int EWX_LOGOFF = 0x00000000; internal const int EWX_SHUTDOWN = 0x00000001; internal const int EWX_REBOOT = 0x00000002; internal const int EWX_FORCE = 0x00000004; internal const int EWX_POWEROFF = 0x00000008; internal const int EWX_FORCEIFHUNG = 0x00000010; public const int User = 0x0600; public const int User_ParmSelect = 0x0601;//May Not Use public const int User_ParmClear = 0x0602; //May Not Use public const int User_Navigation = 0x603; //May Not Use public const int User_Refersh = 0x610; public const int User_subDisplayFormNew = 0x611; public const int User_subDisplayFormClose = 0x612; public const int User_subDisplayFormChange = 0x613; //public const int User_subDisplayFormChange = 0x614; public const int User_MonitorFormClose = 0x615; #region [ Window API ] [DllImport("kernel32")] public static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); [DllImport("user32.dll")] public static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wPar, IntPtr lPar); [DllImport("user32.dll", EntryPoint = "GetWindowLong", CharSet = CharSet.Auto)] public static extern int GetWindowLong(HandleRef hWnd, int nIndex); [DllImport("user32.dll", EntryPoint = "SetWindowLong", CharSet = CharSet.Auto)] public static extern IntPtr SetWindowLong(HandleRef hWnd, int nIndex, int dwNewLong); [DllImport("user32.dll")] public static extern int GetForegroundWindow(); [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern IntPtr GetWindowDC(IntPtr handle); [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern IntPtr ReleaseDC(IntPtr handle, IntPtr hDC); [DllImport("Gdi32.dll", CharSet = CharSet.Auto)] public static extern IntPtr CreateCompatibleDC(IntPtr hdc); [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetClassName(IntPtr hwnd, char[] className, int maxCount); [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern IntPtr GetWindow(IntPtr hwnd, int uCmd); [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern bool IsWindowVisible(IntPtr hwnd); [DllImport("user32", CharSet = CharSet.Auto)] public static extern int GetClientRect(IntPtr hwnd, ref RECT lpRect); [DllImport("user32", CharSet = CharSet.Auto)] public static extern int GetClientRect(IntPtr hwnd, [In, Out] ref Rectangle rect); [DllImport("user32", CharSet = CharSet.Auto)] public static extern bool MoveWindow(IntPtr hwnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); [DllImport("user32", CharSet = CharSet.Auto)] public static extern bool UpdateWindow(IntPtr hwnd); [DllImport("user32", CharSet = CharSet.Auto)] public static extern bool InvalidateRect(IntPtr hwnd, ref Rectangle rect, bool bErase); [DllImport("user32", CharSet = CharSet.Auto)] public static extern bool ValidateRect(IntPtr hwnd, ref Rectangle rect); [DllImport("user32.dll", CharSet = CharSet.Auto)] internal static extern bool GetWindowRect(IntPtr hWnd, [In, Out] ref Rectangle rect); [StructLayout(LayoutKind.Sequential)] public struct RECT { public int Left; public int Top; public int Right; public int Bottom; } [StructLayout(LayoutKind.Sequential)] public struct WINDOWPOS { public IntPtr hwnd; public IntPtr hwndAfter; public int x; public int y; public int cx; public int cy; public uint flags; } [StructLayout(LayoutKind.Sequential)] public struct NCCALCSIZE_PARAMS { public RECT rgc; public WINDOWPOS wndpos; } #endregion [StructLayout(LayoutKind.Sequential, Pack = 1)] internal struct TokPriv1Luid { public int Count; public long Luid; public int Attr; } [DllImport("kernel32.dll", ExactSpelling = true)] internal static extern IntPtr GetCurrentProcess(); [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok); [DllImport("advapi32.dll", SetLastError = true)] internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid); [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen); [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)] internal static extern bool ExitWindowsEx(int DoFlag, int rea); #region [ Shutdown Functions ] private static void DoExitWin(int DoFlag) { bool ok; TokPriv1Luid tp; IntPtr hproc = GetCurrentProcess(); IntPtr htok = IntPtr.Zero; ok = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok); tp.Count = 1; tp.Luid = 0; tp.Attr = SE_PRIVILEGE_ENABLED; ok = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid); ok = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); ok = ExitWindowsEx(DoFlag, 0); } public static void Reboot() { DoExitWin(EWX_FORCE | EWX_REBOOT); } public static void PowerOff() { DoExitWin(EWX_FORCE | EWX_POWEROFF); } public static void LogOff() { DoExitWin(EWX_FORCE | EWX_LOGOFF); } #endregion }}
0 0
- win32
- wiN32
- Win32
- WIN32
- win32
- Win32
- Win32
- WIN32
- win32
- WIN32
- Win32 -Win32数据类型
- [Win32] Win32 RS232讀寫
- Win32 - 07 Win32数据类型
- [Win32]Win32网络小结
- [Win32]Win32网络小结
- win32 win32 com_error
- lcc-win32
- win32界面
- NSLayoutConstraint-代码实现自动布局的函数用法说明
- Java设计模式-5-原型模式
- UVA 10313-Pay the Price(DP)
- 假如当时我没醒来
- StringX
- win32
- 2014(马年)学年总结
- 元素为结构体的vector 找最大元素
- FileAssociation
- 给儿子制定的学习、活动计划(2015.02 -)
- ini, Reg
- wsFile
- 经典同步问题linux下的C实现:生产者-消费者问题,读者-写者问题,哲学家问题
- wsArray