在C#中调用windows API函数实例

来源:互联网 发布:怎么导出淘宝客户地址 编辑:程序博客网 时间:2024/04/27 16:19
在C#中调用windows API函数实例

 

对于windows 系统API函数的调用在程序设计中有时是必不可少的,各种编程语言都规范了调用的方法和接口,在C#语言中的调用方法如下(以下编程环境为Visual Studio .NET):
1、 在工程项目中添加一个类新项,打开这个类文件,在文件头部加入对以下命名空间的引用:
using System.Runtime.InteropServices;
在类定义主体中,以静态调用的方式加入对API的引用,本文以下的API调用为例:
/// <summary>
/// 打开和关闭CD托盘.
/// </summary>
[DllImport("winmm.dll" , EntryPoint="mciSendString", CharSet=CharSet.Auto)]
public static extern int mciSendString (string lpstrCommand,string lpstrReturnstring ,int uReturnLength,int hwndCallback);

/// <summary>
/// 显示和隐藏鼠标指针.
/// </summary>
[DllImport("user32.dll", EntryPoint="ShowCursor", CharSet=CharSet.Auto)]
public static extern int ShowCursor(int bShow);

/// <summary>
/// 清空回收站.
/// </summary>
[DllImport("shell32.dll", EntryPoint="SHEmptyRecycleBin", CharSet=CharSet.Auto)]
public static extern long SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath, long dwFlags);

/// <summary>
/// 打开浏览器
/// </summary>
[DllImport("shell32.dll", EntryPoint="ShellExecute", CharSet=CharSet.Auto)]
public static extern int ShellExecute(IntPtr hwnd,string lpOperation,string lpFile,string lpParameters,string lpDirectory,int nShowCmd);
/// <summary>
/// 最大化窗口,最小化窗口,正常大小窗口;
/// </summary>
[DllImport("user32.dll", EntryPoint="ShowWindow", CharSet=CharSet.Auto)]
public static extern int ShowWindow(IntPtr hwnd,int nCmdShow);

2、 有了上面的文件后,就可以在自己的窗体对象的事件处理中调用以上的API,方法如下:
以下strReturn是string类型的公有变量,ApiCalls指代第一步创建的类名。
打开CD托盘:
long lngReturn = ApiCalls.mciSendString("set CDAudio door open", strReturn, 127, 0);
关闭CD托盘:
long lngReturn = ApiCalls.mciSendString("set CDAudio door closed", strReturn, 127, 0);
在应用程序窗体中显示鼠标指针:
ApiCalls.ShowCursor(1);
在应用程序窗体中隐藏鼠标指针:
ApiCalls.ShowCursor(0);
清空回收站:
ApiCalls.SHEmptyRecycleBin(Form.ActiveForm.Handle,"",0x00000000);
打开浏览器窗口,textBox1.Text中表示要访问的URL地址:
Long lngReturn= ApiCalls.ShellExecute(Form.ActiveForm.Handle,"Open",textBox1.Text,$False$ "","",1);
最大化窗口:
ApiCalls.ShowWindow(Form.ActiveForm.Handle,3);
最小化窗口:
ApiCalls.ShowWindow(Form.ActiveForm.Handle,2);
恢复正常大小窗口:
ApiCalls.ShowWindow(Form.ActiveForm.Handle,1);

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三岁宝宝吃太多怎么办 小孩吃撑发烧了怎么办 婆婆不帮忙带孩子怎么办 孩子在中班幼儿园不爱写字怎么办 小孩不愿意上学不愿意写字怎么办 宝妈太内向不喜欢带孩子出门怎么办 宝宝吃饭不带围兜怎么办 宝宝吃饭不喜欢带围兜怎么办 宝宝吃饭不爱带围兜怎么办 孩子不吃肉和菜怎么办 我很恶心我婆婆怎么办 坐月子不喜欢婆婆抱宝宝怎么办 宝宝一写字就哭怎么办 4岁宝宝不爱学习怎么办 4岁宝宝不爱写字怎么办 孩子调皮老师不让上学了怎么办 小学生写字握笔握出剪子来怎么办 儿子6岁不会写字怎么办 宝宝在幼儿园不说话怎么办 孩子上幼儿园不说话怎么办 幼儿写数字不写怎么办 小孩不吃饭怎么办 十个月 十个月小孩不爱吃饭怎么办 十个月的小孩不吃饭怎么办 家长要调幼儿园监控怎么办 自己带孩子婆婆生气怎么办 婆婆老是觉得我奶水不够怎么办 1岁小儿特别懒怎么办 17的孩子很懒怎么办 上大班的孩子不愿写字怎么办 快上中班的小朋友不爱学习怎么办 小学生两边肩膀不平应该怎么办 写字右肩膀疼是怎么办 开车久了肩膀疼怎么办 3岁宝宝撕书怎么办 孩子上幼儿园不爱写字怎么办 一年级小孩不爱做作业怎么办 小孩不愿多做作业怎么办 小孩一年级不自觉做作业怎么办 小孩会读不会写怎么办 好多字都不会写怎么办