Window32方法
2018-09-12

0X1 Winuser.h header

文档 Winuser.h header


C#调用win32api;.net调用win32api;win32api;win32文档;c#获取句柄;通过句柄查找子窗口;

0X2 .NET调用方法

DllImport所指定的dll请查看文档中【Requirements】中【DLL】项

[DllImport("user32.dll", 
EntryPoint = "GetWindow",
CharSet = CharSet.Auto, 
SetLastError = true)]
public static extern HWND GetWindow(HWND hWnd, uint uCmd);

获取SetLastError的错误响应

[DllImport("kernel32.dll",
EntryPoint = "GetLastError",
CharSet = CharSet.Auto)]
public static extern int GetLastError();

///<summary>抛出最后一个错误</summary> 
public static void ThrowLastException()
{
    var lastErrorCode=GetLastError();
    if(lastErrorCode==0)return;
    throw new Win32Exception(lastErrorCode);
}

0X3 与.NET参数类型说明

using HWND = System.IntPtr;
using LPTSTR = System.Text.StringBuilder;

0X4 GetWindow

检索具有指定窗口的指定关系(Z-Order或owner)的窗口的句柄

HWND GetWindow(HWND hWnd,UINT uCmd);

0X5 GetClassInfoA

检索有关窗口类的信息

BOOL GetClassInfoA(HINSTANCE   hInstance,
  LPCSTR      lpClassName,
  LPWNDCLASSA lpWndClass
);