[转贴]几个比较好用的Windows API在C#中的用法
2008-08-17 15:03
337 查看
Code
#region Windows Api 定义
///
/// 模拟鼠标事件
///
/// 鼠标事件的Enum
/// X座标
/// Y座标
///
///
[DllImport("user32.dll")]
public static extern void mouse_event (MouseEvents dwFlags,long dx, long dy,long cButtons,long dwExtraInfo);
///
/// 定义模拟鼠标的常数
///
public enum MouseEvents:uint
{
MOUSEEVENTF_LEFTDOWN = 0x2,
MOUSEEVENTF_LEFTUP = 0x4,
MOUSEEVENTF_MIDDLEDOWN = 0x20,
MOUSEEVENTF_MIDDLEUP = 0x40,
MOUSEEVENTF_MOVE = 0x1,
MOUSEEVENTF_ABSOLUTE = 0x8000,
MOUSEEVENTF_RIGHTDOWN = 0x8,
MOUSEEVENTF_RIGHTUP = 0x10,
}
///
/// 按指定标题寻找窗口,以获得指定窗口的句柄,为空则返回零。
///
/// 如未知则设置为NULL
/// 窗口名
/// 整型数据,代表窗口句柄
[DllImport("user32.dll")]
public static extern int FindWindow(String lpClassName,String lpWindowName);
///
/// 根据窗口句柄,获得窗口的类名
///
/// 窗口句柄
/// 缓冲区
/// 最大字节数
/// 整型,代表类名
[DllImport("user32.dll")]
public static extern int GetClassName(int hwnd,System.Text.StringBuilder buf, int nMaxCount);
///
/// 根据窗口句柄,获得指定窗口的标题。
///
/// 窗口句柄
/// 缓冲区
/// 最大字节数
/// 返回标题
[DllImport("user32.dll")]
public static extern int GetWindowText(int hwnd,System.Text.StringBuilder buf, int nMaxCount);
///
/// 根据窗口句柄,设置指定窗口为前置窗口。
///
/// 窗口句柄
[DllImport("user32.dll")]
public static extern void SetForegroundWindow(int hwnd);
///
/// 根据窗口句柄和显示的样式,显示窗口。
///
/// 窗口句柄
/// 显示窗口的样式。
/// 成功与否。
[DllImport("user32.dll")]
public static extern bool ShowWindow(int hWnd, nCmdShow nCmdShow);
public enum nCmdShow:uint
{
SW_FORCEMINIMIZE=0x0,
SW_HIDE=0x1,
SW_MAXIMIZE=0x2,
SW_MINIMIZE=0x3,
SW_RESTORE=0x4,
SW_SHOW=0x5,
SW_SHOWDEFAULT=0x6,
SW_SHOWMAXIMIZED=0x7,
SW_SHOWMINIMIZED=0x8,
SW_SHOWMINNOACTIVE=0x9,
SW_SHOWNA=0xA,
SW_SHOWNOACTIVATE=0xB,
SW_SHOWNORMAL=0xC,
}
///
/// 捕捉当前鼠标位置
///
/// 传入参数,代表鼠标的当前位置
///
[DllImport("user32.dll")]
public static extern long GetCursorPos (ref System.Drawing.Point lpPoint);
#endregion
#region Windows Api 定义
///
/// 模拟鼠标事件
///
/// 鼠标事件的Enum
/// X座标
/// Y座标
///
///
[DllImport("user32.dll")]
public static extern void mouse_event (MouseEvents dwFlags,long dx, long dy,long cButtons,long dwExtraInfo);
///
/// 定义模拟鼠标的常数
///
public enum MouseEvents:uint
{
MOUSEEVENTF_LEFTDOWN = 0x2,
MOUSEEVENTF_LEFTUP = 0x4,
MOUSEEVENTF_MIDDLEDOWN = 0x20,
MOUSEEVENTF_MIDDLEUP = 0x40,
MOUSEEVENTF_MOVE = 0x1,
MOUSEEVENTF_ABSOLUTE = 0x8000,
MOUSEEVENTF_RIGHTDOWN = 0x8,
MOUSEEVENTF_RIGHTUP = 0x10,
}
///
/// 按指定标题寻找窗口,以获得指定窗口的句柄,为空则返回零。
///
/// 如未知则设置为NULL
/// 窗口名
/// 整型数据,代表窗口句柄
[DllImport("user32.dll")]
public static extern int FindWindow(String lpClassName,String lpWindowName);
///
/// 根据窗口句柄,获得窗口的类名
///
/// 窗口句柄
/// 缓冲区
/// 最大字节数
/// 整型,代表类名
[DllImport("user32.dll")]
public static extern int GetClassName(int hwnd,System.Text.StringBuilder buf, int nMaxCount);
///
/// 根据窗口句柄,获得指定窗口的标题。
///
/// 窗口句柄
/// 缓冲区
/// 最大字节数
/// 返回标题
[DllImport("user32.dll")]
public static extern int GetWindowText(int hwnd,System.Text.StringBuilder buf, int nMaxCount);
///
/// 根据窗口句柄,设置指定窗口为前置窗口。
///
/// 窗口句柄
[DllImport("user32.dll")]
public static extern void SetForegroundWindow(int hwnd);
///
/// 根据窗口句柄和显示的样式,显示窗口。
///
/// 窗口句柄
/// 显示窗口的样式。
/// 成功与否。
[DllImport("user32.dll")]
public static extern bool ShowWindow(int hWnd, nCmdShow nCmdShow);
public enum nCmdShow:uint
{
SW_FORCEMINIMIZE=0x0,
SW_HIDE=0x1,
SW_MAXIMIZE=0x2,
SW_MINIMIZE=0x3,
SW_RESTORE=0x4,
SW_SHOW=0x5,
SW_SHOWDEFAULT=0x6,
SW_SHOWMAXIMIZED=0x7,
SW_SHOWMINIMIZED=0x8,
SW_SHOWMINNOACTIVE=0x9,
SW_SHOWNA=0xA,
SW_SHOWNOACTIVATE=0xB,
SW_SHOWNORMAL=0xC,
}
///
/// 捕捉当前鼠标位置
///
/// 传入参数,代表鼠标的当前位置
///
[DllImport("user32.dll")]
public static extern long GetCursorPos (ref System.Drawing.Point lpPoint);
#endregion
相关文章推荐
- 几个比较好用的Windows API在C#中的用法。
- [转贴]C#中调用Windows API的要点
- 转贴:C#语言的几个层次
- [转贴]C#中调用Windows API的要点
- C#.Net 中的 new 的几个用法
- C# 单元测试几个方法的用法
- [转贴]C#中调用Windows API的要点
- C# DUID的用法及取得整数的几个方法
- JSTL的几个高级用法(转贴)
- C#stringBuilder用法
- C#调用Windows API实现自动登录
- C#中HashTable的用法
- 四 C# 多线程研究 Monitor和lock用法举例
- DllImport的相关用法(C# 中调用C++ DLL)
- wmsys.wm_concat的几个用法(附加功能)
- C#接口(Interface)用法分析
- C#调用windows api的要点
- oracle的loop等循环语句的几个用法小例子
- c#里FindWindow的用法
- c#中out与ref的用法与区别