using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace WindowsAPI
{
class CSharp_Win32Api
{
#region User32.dll 彿°
/// <summary>
/// è¯¥å½æ°æ£ç´¢ä¸æå®çªå£ç客æ·åºåææ´ä¸ªå±å¹çæ¾ç¤ºè®¾å¤ä¸ä¸æç¯å¢ç奿ï¼ä»¥åå¯ä»¥å¨GDI彿°ä¸ä½¿ç¨è¯¥å¥ææ¥å¨è®¾å¤ä¸ä¸æç¯å¢ä¸ç»å¾ãhWndï¼è®¾å¤ä¸ä¸æç¯å¢è¢«æ£ç´¢ççªå£ç奿
/// </summary>
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetDC(IntPtr hWnd);
/// <summary>
/// 彿°éæ¾è®¾å¤ä¸ä¸æç¯å¢ï¼DCï¼ä¾å
¶ä»åºç¨ç¨åºä½¿ç¨ã
/// </summary>
public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
/// <summary>
/// è¯¥å½æ°è¿åæ¡é¢çªå£çå¥æãæ¡é¢çªå£è¦çæ´ä¸ªå±å¹ã
/// </summary>
static public extern IntPtr GetDesktopWindow();
/// <summary>
/// è¯¥å½æ°è®¾ç½®æå®çªå£çæ¾ç¤ºç¶æã
/// </summary>
static public extern bool ShowWindow(IntPtr hWnd, short State);
/// <summary>
/// éè¿åééç»æ¶æ¯ WM_PAINT ç»ç®æ çªä½æ¥æ´æ°ç®æ çªä½å®¢æ·åºçæ æåºåã
/// </summary>
static public extern bool UpdateWindow(IntPtr hWnd);
/// <summary>
/// è¯¥å½æ°å°å建æå®çªå£ç线ç¨è®¾ç½®å°åå°ï¼å¹¶ä¸æ¿æ´»è¯¥çªå£ãé®çè¾å
¥è½¬å该çªå£ï¼å¹¶ä¸ºç¨æ·æ¹åç§å¯è§çè®°å·ãç³»ç»ç»å建åå°çªå£ç线ç¨åé
çæéç¨é«äºå
¶ä»çº¿ç¨ã
/// </summary>
static public extern bool SetForegroundWindow(IntPtr hWnd);
/// <summary>
/// è¯¥å½æ°æ¹åä¸ä¸ªåçªå£ï¼å¼¹åºå¼çªå£å¼é¡¶å±çªå£ç尺寸ï¼ä½ç½®åZåºã
/// </summary>
static public extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int Width, int Height, uint flags);
/// <summary>
/// æå¼åªåæ¿
/// </summary>
static public extern bool OpenClipboard(IntPtr hWndNewOwner);
/// <summary>
/// å
³éåªåæ¿
/// </summary>
static public extern bool CloseClipboard();
/// <summary>
/// æå¼æ¸
空</summary>
static public extern bool EmptyClipboard();
/// <summary>
/// å°åæ¾ææ°æ®çå
ååæ¾å
¥åªåæ¿çèµæºç®¡çä¸
/// </summary>
static public extern IntPtr SetClipboardData(uint Format, IntPtr hData);
/// <summary>
/// å¨ä¸ä¸ªç©å½¢ä¸è£
è½½æå®èåæ¡ç®çå±å¹åæ ä¿¡æ¯
/// </summary>
static public extern bool GetMenuItemRect(IntPtr hWnd, IntPtr hMenu, uint Item, ref RECT rc);
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
/// <summary>
/// è¯¥å½æ°è·å¾ä¸ä¸ªæå®åçªå£çç¶çªå£å¥æã
/// </summary>
public static extern IntPtr GetParent(IntPtr hWnd);
/// <summary>
/// è¯¥å½æ°å°æå®çæ¶æ¯åéå°ä¸ä¸ªæå¤ä¸ªçªå£ãæ¤å½æ°ä¸ºæå®ççªå£è°ç¨çªå£ç¨åºï¼ç´å°çªå£ç¨åºå¤ç宿¶æ¯åè¿åãã
/// </summary>
/// <param name="hWnd">å
¶çªå£ç¨åºå°æ¥æ¶æ¶æ¯ççªå£ç奿</param>
/// <param name="msg">æå®è¢«åéçæ¶æ¯</param>
/// <param name="wParam">æå®éå çæ¶æ¯æå®ä¿¡æ¯</param>
/// <param name="lParam">æå®éå çæ¶æ¯æå®ä¿¡æ¯</param>
/// <returns></returns>
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam);
public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref RECT lParam);
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref POINT lParam);
public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref TBBUTTON lParam);
public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref TBBUTTONINFO lParam);
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref REBARBANDINFO lParam);
public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref TVITEM lParam);
public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref LVITEM lParam);
public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref HDITEM lParam);
public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref HD_HITTESTINFO hti);
/// <summary>
/// è¯¥å½æ°å°ä¸ä¸ªæ¶æ¯æ¾å
¥ï¼å¯éï¼å°ä¸æå®çªå£å建ç线ç¨ç¸èç³»æ¶æ¯éåé
/// </summary>
public static extern IntPtr PostMessage(IntPtr hWnd, int msg, int wParam, int lParam);
public static extern IntPtr SetWindowsHookEx(int hookid, HookProc pfnhook, IntPtr hinst, int threadid);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern bool UnhookWindowsHookEx(IntPtr hhook);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr CallNextHookEx(IntPtr hhook, int code, IntPtr wparam, IntPtr lparam);
/// <summary>
/// è¯¥å½æ°å¯¹æå®ççªå£è®¾ç½®é®çç¦ç¹ã
/// </summary>
public static extern IntPtr SetFocus(IntPtr hWnd);
/// <summary>
/// è¯¥å½æ°å¨æå®çç©å½¢éåå
¥æ ¼å¼åææ¬ï¼æ ¹æ®æå®çæ¹æ³å¯¹ææ¬æ ¼å¼åï¼æ©å±çå¶è¡¨ç¬¦ï¼å符对é½ãæè¡çï¼ã
/// </summary>
public extern static int DrawText(IntPtr hdc, string lpString, int nCount, ref RECT lpRect, int uFormat);
/// <summary>
/// è¯¥å½æ°æ¹åæå®åçªå£çç¶çªå£ã
/// </summary>
public extern static IntPtr SetParent(IntPtr hChild, IntPtr hParent);
/// <summary>
/// è·åå¯¹è¯æ¡ä¸åçªå£æ§ä»¶ç奿
/// </summary>
public extern static IntPtr GetDlgItem(IntPtr hDlg, int nControlID);
/// <summary>
/// è¯¥å½æ°è·åçªå£å®¢æ·åºçåæ ã
/// </summary>
public extern static int GetClientRect(IntPtr hWnd, ref RECT rc);
/// <summary>
/// è¯¥å½æ°åæå®ççªä½æ·»å ä¸ä¸ªç©å½¢ï¼ç¶åçªå£å®¢æ·åºåçè¿ä¸é¨åå°è¢«éæ°ç»å¶ã
/// </summary>
public extern static int InvalidateRect(IntPtr hWnd, IntPtr rect, int bErase);
/// <summary>
/// è¯¥å½æ°äº§ç对å
¶ä»çº¿ç¨çæ§å¶ï¼å¦æä¸ä¸ªçº¿ç¨æ²¡æå
¶ä»æ¶æ¯å¨å
¶æ¶æ¯éåéã
/// </summary>
public static extern bool WaitMessage();
/// <summary>
/// è¯¥å½æ°ä¸ºä¸ä¸ªæ¶æ¯æ£æ¥çº¿ç¨æ¶æ¯éåï¼å¹¶å°è¯¥æ¶æ¯ï¼å¦æåå¨ï¼æ¾äºæå®çç»æã
/// </summary>
public static extern bool PeekMessage(ref MSG msg, int hWnd, uint wFilterMin, uint wFilterMax, uint wFlag);
/// <summary>
/// è¯¥å½æ°ä»è°ç¨çº¿ç¨çæ¶æ¯éåéåå¾ä¸ä¸ªæ¶æ¯å¹¶å°å
¶æ¾äºæå®çç»æãæ¤å½æ°å¯åå¾ä¸æå®çªå£èç³»çæ¶æ¯åç±PostThreadMesssgeå¯éççº¿ç¨æ¶æ¯ãæ¤å½æ°æ¥æ¶ä¸å®èå´çæ¶æ¯å¼ã
/// </summary>
public static extern bool GetMessage(ref MSG msg, int hWnd, uint wFilterMin, uint wFilterMax);
/// <summary>
/// è¯¥å½æ°å°èæé®æ¶æ¯è½¬æ¢ä¸ºåç¬¦æ¶æ¯ã
/// </summary>
public static extern bool TranslateMessage(ref MSG msg);
/// <summary>
/// è¯¥å½æ°è°åº¦ä¸ä¸ªæ¶æ¯ç»çªå£ç¨åºã
/// </summary>
public static extern bool DispatchMessage(ref MSG msg);
/// <summary>
/// è¯¥å½æ°ä»ä¸ä¸ªä¸åºç¨äºä¾ç¸å
³ç坿§è¡æä»¶ï¼EXEæä»¶ï¼ä¸è½½å
¥æå®çå
æ èµæº.
/// </summary>
public static extern IntPtr LoadCursor(IntPtr hInstance, uint cursor);
/// <summary>
/// è¯¥å½æ°ç¡®å®å
æ çå½¢ç¶ã
/// </summary>
public static extern IntPtr SetCursor(IntPtr hCursor);
/// <summary>
/// ç¡®å®å½åç¦ç¹ä½äºåªä¸ªæ§ä»¶ä¸ã
/// </summary>
public static extern IntPtr GetFocus();
/// <summary>
/// è¯¥å½æ°ä»å½å线ç¨ä¸ççªå£éæ¾é¼ æ æè·ï¼å¹¶æ¢å¤é常çé¼ æ è¾å
¥å¤çãæè·é¼ æ ççªå£æ¥æ¶ææçé¼ æ è¾å
¥ï¼æ 论å
æ çä½ç½®å¨åªéï¼ï¼é¤éç¹å»é¼ æ 鮿¶ï¼å
æ çç¹å¨å¦ä¸ä¸ªçº¿ç¨ççªå£ä¸ã
/// </summary>
public static extern bool ReleaseCapture();
/// <summary>
/// å夿å®ççªå£æ¥éç»å¹¶å°ç»ç»ç¸å
³çä¿¡æ¯æ¾å°ä¸ä¸ªPAINTSTRUCTç»æä¸ã
/// </summary>
public static extern IntPtr BeginPaint(IntPtr hWnd, ref PAINTSTRUCT ps);
/// <summary>
/// æ è®°æå®çªå£çç»ç»è¿ç¨ç»æ,æ¯æ¬¡è°ç¨BeginPaint彿°ä¹å被请æ±
/// </summary>
public static extern bool EndPaint(IntPtr hWnd, ref PAINTSTRUCT ps);
/// <summary>
/// åéæçªä½
/// </summary>
public static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref POINT pptDst, ref SIZE psize, IntPtr hdcSrc, ref POINT pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
/// <summary>
/// è¯¥å½æ°è¿åæå®çªå£çè¾¹æ¡ç©å½¢ç尺寸ã该尺寸以ç¸å¯¹äºå±å¹åæ å·¦ä¸è§çå±å¹åæ ç»åºã
/// </summary>
public static extern bool GetWindowRect(IntPtr hWnd, ref RECT rect);
/// <summary>
/// è¯¥å½æ°å°æå®ç¹çç¨æ·åæ è½¬æ¢æå±å¹åæ ã
/// </summary>
public static extern bool ClientToScreen(IntPtr hWnd, ref POINT pt);
/// <summary>
/// å½å¨æå®æ¶é´å
é¼ æ æéç¦»å¼æçæå¨ä¸ä¸ªçªå£ä¸æ¶ï¼æ¤å½æ°å¯éæ¶æ¯ã
/// </summary>
public static extern bool TrackMouseEvent(ref TRACKMOUSEEVENTS tme);
/// <summary>
///
/// </summary>
public static extern bool SetWindowRgn(IntPtr hWnd, IntPtr hRgn, bool redraw);
/// <summary>
/// è¯¥å½æ°æ£åæå®èæé®çç¶æã
/// </summary>
public static extern ushort GetKeyState(int virtKey);
/// <summary>
/// è¯¥å½æ°æ¹åæå®çªå£çä½ç½®å尺寸ã对äºé¡¶å±çªå£ï¼ä½ç½®å尺寸æ¯ç¸å¯¹äºå±å¹çå·¦ä¸è§çï¼å¯¹äºåçªå£ï¼ä½ç½®å尺寸æ¯ç¸å¯¹äºç¶çªå£å®¢æ·åºçå·¦ä¸è§åæ çã
/// </summary>
public static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint);
/// <summary>
/// è¯¥å½æ°è·å¾æå®çªå£æå±çç±»çç±»åã
/// </summary>
public static extern int GetClassName(IntPtr hWnd, out STRINGBUFFER ClassName, int nMaxCount);
/// <summary>
/// è¯¥å½æ°æ¹åæå®çªå£ç屿§
/// </summary>
public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
/// <summary>
/// è¯¥å½æ°æ£ç´¢æå®çªå£å®¢æ·åºåææ´ä¸ªå±å¹çæ¾ç¤ºè®¾å¤ä¸ä¸æç¯å¢ç奿ï¼å¨éåçGDI彿°ä¸å¯ä»¥ä½¿ç¨è¯¥å¥æå¨è®¾å¤ä¸ä¸æç¯å¢ä¸ç»å¾ã
/// </summary>
public static extern IntPtr GetDCEx(IntPtr hWnd, IntPtr hRegion, uint flags);
/// <summary>
/// è·åæ´ä¸ªçªå£ï¼å
æ¬è¾¹æ¡ãæ»å¨æ¡ãæ 颿 ãèåçï¼ç设å¤åºæ¯ è¿åå¼ Longã
/// </summary>
public static extern IntPtr GetWindowDC(IntPtr hWnd);
/// <summary>
/// è¯¥å½æ°ç¨æå®çç»å·å¡«å
ç©å½¢ï¼æ¤å½æ°å
æ¬ç©å½¢çå·¦ä¸è¾¹çï¼ä½ä¸å
æ¬ç©å½¢çå³ä¸è¾¹çã
/// </summary>
public static extern int FillRect(IntPtr hDC, ref RECT rect, IntPtr hBrush);
/// <summary>
/// è¯¥å½æ°è¿åæå®çªå£çæ¾ç¤ºç¶æä»¥å被æ¢å¤çãæå¤§åçåæå°åççªå£ä½ç½®ã
/// </summary>
public static extern int GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT wp);
/// <summary>
/// è¯¥å½æ°æ¹åæå®çªå£çæ 颿 çææ¬å
容
/// </summary>
public static extern int SetWindowText(IntPtr hWnd, string text);
/// <summary>
/// è¯¥å½æ°å°æå®çªå£çæ 颿¡ææ¬ï¼å¦æåå¨ï¼æ·è´å°ä¸ä¸ªç¼ååºå
ã妿æå®ççªå£æ¯ä¸ä¸ªæ§å¶ï¼åæ·è´æ§å¶çææ¬ã
/// </summary>
public static extern int GetWindowText(IntPtr hWnd, out STRINGBUFFER text, int maxCount);
/// <summary>
/// ç¨äºå¾å°è¢«å®ä¹çç³»ç»æ°æ®æè
ç³»ç»é
置信æ¯.
/// </summary>
static public extern int GetSystemMetrics(int nIndex);
/// <summary>
/// è¯¥å½æ°è®¾ç½®æ»å¨æ¡åæ°ï¼å
æ¬æ»å¨ä½ç½®çæå¤§å¼åæå°å¼ï¼é¡µé¢å¤§å°ï¼æ»å¨æé®çä½ç½®ã
/// </summary>
static public extern int SetScrollInfo(IntPtr hwnd, int bar, ref SCROLLINFO si, int fRedraw);
/// <summary>
/// è¯¥å½æ°æ¾ç¤ºæéèææå®çæ»å¨æ¡ã
/// </summary>
public static extern int ShowScrollBar(IntPtr hWnd, int bar, int show);
/// <summary>
/// è¯¥å½æ°å¯ä»¥æ¿æ´»ä¸ä¸ªæä¸¤ä¸ªæ»å¨æ¡ç®å¤´ææ¯ä½¿å
¶å¤±æã
/// </summary>
public static extern int EnableScrollBar(IntPtr hWnd, uint flags, uint arrows);
/// <summary>
/// è¯¥å½æ°å°æå®ççªå£è®¾ç½®å°Zåºçé¡¶é¨ã
/// </summary>
public static extern int BringWindowToTop(IntPtr hWnd);
/// <summary>
/// è¯¥å½æ°æ»å¨æå®çªä½å®¢æ·åºåçç®å½ã
/// </summary>
static public extern int ScrollWindowEx(IntPtr hWnd, int dx, int dy,ref RECT rcScroll, ref RECT rcClip, IntPtr UpdateRegion, ref RECT rcInvalidated, uint flags);
/// <summary>
/// è¯¥å½æ°ç¡®å®ç»å®ççªå£å¥ææ¯å¦è¯å«ä¸ä¸ªå·²åå¨ççªå£ã
/// </summary>
public static extern int IsWindow(IntPtr hWnd);
/// <summary>
/// è¯¥å½æ°å°256个èæé®çç¶ææ·è´å°æå®çç¼å²åºä¸ã
/// </summary>
public static extern int GetKeyboardState(byte[] pbKeyState);
/// <summary>
/// è¯¥å½æ°å°æå®çèæé®ç åé®çç¶æç¿»è¯ä¸ºç¸åºçå符æå符串ãè¯¥å½æ°ä½¿ç¨ç±ç»å®çé®çå¸å±å¥ææ è¯çç©çé®çå¸å±åè¾å
¥è¯è¨æ¥ç¿»è¯ä»£ç ã
/// </summary>
public static extern int ToAscii(int uVirtKey,int uScanCode, byte[] lpbKeyState, byte[] lpwTransKey,int fuState);
#endregion
}
}
Â