Windows API
Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application), 所以便称之为 Application Programming Interface,简称 API 函数。WIN32 API也就是Microsoft Windows 32位平台的应用程序编程接口。
C#调用Windows API
C#调用Windows API之调用格式,在.Net Framework SDK文档中是比较零散。但在C#中使用Windows API最常见的方式是用DllImport 来进行处理,并 使用 C# 关键字 static 和 extern 声明方法 。
[DllImport("kernel32")]
public static extern void GetWindowsDirectory(StringBuilder WinDir,int count);
上述代码中,DllImport属性用来从不可控代码中调用一个方法,它指定了DLL的位置,该DLL中包含调用的外部方法:
- kernel32设定了类库名
- public指明函数的访问类型为公有的
- static修饰符声明一个静态元素,而该元素属于类型本身而不是指定的对象
- extern表示该方法将在工程外部执行,同时使用DllImport导入的方法必须使用extern修饰符
C# 调用Windows API操作QQ窗口
private void button1_Click(object sender, EventArgs e)
{
Clipboard.SetText("Window Api使用QQ发中文测试。");
System.Threading.Thread.Sleep(100);
IntPtr QQMessgeWindow= WindowsAPI.FindWindow("TXGuiFoundation", "对方QQ昵称");
if (QQMessgeWindow != IntPtr.Zero)
{
WindowsAPI.keybd_event(1, 0, 0, 0);
WindowsAPI.ShowWindow(QQMessgeWindow,1);
WindowsAPI.SetForegroundWindow(QQMessgeWindow);
WindowsAPI.PostMessage(QQMessgeWindow, 770, 0, 0);
WindowsAPI.PostMessage(QQMessgeWindow, 256, 13, 0);
WindowsAPI.PostMessage(QQMessgeWindow, 257, 13, 0);
WindowsAPI.keybd_event(17, 0, 2, 0);
}
}
C#封装Windows API常用的方法类文件
C#封装Windows APi 函数
转载请注明:清风亦平凡 » C#封装常用的Windows API函数