user32.dll中的所有函数  

 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 }
}

user32.dll 函数

user32.dll的更多相关文章

  1. C#中可直接调用WIN32的API函数--USER32.DLL

    Win32的API函数可以直接在C#中直接调用,在做WinForm时还是很有帮助的.有时候直接调用Win32的API,可以很高效的实现想要的效果. using System; using System ...

  2. Winform API "user32.dll"中的函数

    命名空间:System.Runtime.InteropServices /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在G ...

  3. 整理分享C#通过user32.dll模拟物理按键操作的代码

    对系统模拟按键方面的知识和按键映射代码做了一下梳理,在这里分享出来,适用于开发自动操作工具和游戏外挂. 主代码: public const int KEYEVENTF_EXTENDEDKEY = 0x ...

  4. 【转】c# 调用windows API(user32.dll)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...

  5. Python 调用 user32.dll

    import ctypes h = ctypes.windll.LoadLibrary("C:\\Windows\\System32\\user32.dll") h.Message ...

  6. 【WinAPI】User32.dll注释

    #region User32.dll 函数 /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备 ...

  7. 【整理】c# 调用windows API(user32.dll)

    User32.dll提供了很多可供调用的接口,大致如下(转自http://blog.csdn.net/zhang399401/article/details/6978803) using System ...

  8. Win32 API中的user32.dll中的ShowWindow方法参数整理

    在使用ShowWindow方法来设置窗体的状态时,由于不知道参数值,用起来非常容易混乱,所以整理了以下其参数的枚举值,方便以后的的使用.   public class User32API { #reg ...

  9. 【C#】使用user32.dll的MessageBox弹窗消息

    要使用user32.dll的MessageBox弹窗消息,自然需要引入user32.dll到项目中. 一个最简单的实例如下: using System; using System.Runtime.In ...

随机推荐

  1. Android开发探秘之四:利用Intent实现数据传递

    在Android开发过程中,很多人都熟悉Intent,这是个用于在多个View之间共享数据的类.本节主要是继承上节,通过点选ListView中的文本,把文本中的URL加载到一个新的页面上,并且打印出来 ...

  2. 【MySQL】10条SQL优化语句,让你的MySQL数据库跑得更快!

    慢SQL消耗了70%~90%的数据库CPU资源: SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低: SQL语句可以有不同的写法: 1 不使用子 ...

  3. Linux10.11-10.18)学习笔记(

    1Y86指令集体系结构 ISA:指令集体系结构,一个处理器支持的指令和指令的字节级编码 程序员可见的状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分,称为程序员可见状态.其中包括: 8个 ...

  4. Linux第14周学习笔记

    虚拟存储器 虚拟存储器是硬件异常.硬件地址翻译.主存.磁盘文件和内核软件的完美交互. 虚拟存储器的特点: 中心的 强大的 危险的 物理和虚拟寻址 计算机系统的主存被组织成一个由M个连续的字节大小的单元 ...

  5. Opencv step by step - 阈值化

    Opencv里面的阈值化做起来比较简单,只需要一个函数即可: /* Applies fixed-level threshold to grayscale image. This is a basic ...

  6. 傻傻分不清楚的php脚本路径

     闲话就不说了,还是直接提出今天的问题,准确的说,对多个相似的 有关当前脚本信息的全局变量常量的区分. 先贴上代码: <?php echo $_SERVER['PHP_SELF']; echo ...

  7. 初识 swift 封装轮播图

    一.简介 换了一家公司.换了一个环境刚开始来公司自然不能有一丝一毫的放松,每天即使是没有什么工作也是看看这个博客.那个源码.尽量让自己更充实.慢慢的开始写几篇博客记录下自己遇到的一些问题和解决方法.其 ...

  8. ARP 命令运行实现静态IP/MAC绑定

    公司网络出现本地无法连接,以前公司是分配的固定IP,结果还是无法连接网络,后来网管帮我设置了下,我也学习了下.解决办法如下: 1.首先以管理员身份运行CMD打开命令行程序 开始-程序-附件-命令提示符 ...

  9. [C#]Hosting Process (vshost.exe)

    写在前面 最近在群里,有朋友问起这个vshost.exe进程到底是什么?当时确实不知道是个什么东东,给人的感觉是,经常看到它,就是在启动一个项目的时候,经常看到它,就是没细研究它是啥玩意儿.既然遇到了 ...

  10. mysqld参数配置

    这个文件超级大, 查了一下, 大概的作用如下 是储存的格式INNODB类型数据状态下,ibdata用来储存文件的数据而库名的文件夹里面的那些表文件只是结构而已 由于mysql4.1默认试innodb, ...