比如: Win32的"MessageBox"例子: 1. class winAPI { [DllImport("user32.dll")] static exteral int MessageBoxA(int hwnd,string msg,string caption,int type); } 2. class winAPI [DllImport("user32.dll") EntryPoint = "MessageBoxA"] static exteral int MsgBox(int hwnd,string msg,string caption,int type);
关机程序 http://www.yesky.com/20021118/1640321.shtml
C# 中操作API: 我们就从实现一个简单的MessageBox开始。首先打开VS.Net ,创建一个新的C#工程,并添加一个Button按钮。当这个按钮被点击,则显示一个MessageBox对话框。 即然我们需要引用外来库,所以必须导入一个Namespace: using System.Runtime.InteropServices; 接着添加下面的代码来声明一个API: [DllImport("User32.dll")] public static extern int MessageBox(int h, string m, string c, int type); 此处DllImport属性被用来从不可控代码中调用一方法。”User32.dll”则设定了类库名。DllImport属性指定dll的位置,这个dll中包括调用的外部方法。Static修饰符则声明一个静态元素,而这个元素属于类型本身而不是上面指定的对象。extern则表示这个方法将在工程外部执行,使用DllImport导入的方法必须使用extern修饰符。 MessageBox 则是函数名,拥有4个参数,其返回值为数字。 大多数的API都能传递并返回值。 添中Click点击事件代码: protected void button1_Click(object sender, System.EventArgs e) { MessageBox (0,"API Message Box","API Demo",0); } 编译并运行这个程序,当你点击按钮后,你将会看到对话框,这便是你使用的API函数。
我是一个初学者,我将上面这段代码粘到编译器中,结果是C:\Documents and Settings\zjl\My Documents\Visual Studio Projects\WindowsApplication2\Form1.cs(9): 应输入 class、delegate、enum、interface 或 struct 我的代码是 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Runtime.InteropServices; [DllImport("User32.dll")] public static extern int MessageBox(int h, string m, string c, int type);请高手指点。
zhangjianwen(飞也)我按照那个网址的例子调用这个函数 sh = ExitWindowsEx(REBOOT, dwReserved) 可程序怎么没有反映呢?
Win32的"MessageBox"例子:
1.
class winAPI
{
[DllImport("user32.dll")]
static exteral int MessageBoxA(int hwnd,string msg,string caption,int type);
}
2.
class winAPI
[DllImport("user32.dll") EntryPoint = "MessageBoxA"]
static exteral int MsgBox(int hwnd,string msg,string caption,int type);
http://www.yesky.com/20021118/1640321.shtml
我们就从实现一个简单的MessageBox开始。首先打开VS.Net ,创建一个新的C#工程,并添加一个Button按钮。当这个按钮被点击,则显示一个MessageBox对话框。
即然我们需要引用外来库,所以必须导入一个Namespace:
using System.Runtime.InteropServices;
接着添加下面的代码来声明一个API:
[DllImport("User32.dll")]
public static extern int MessageBox(int h, string m, string c, int type); 此处DllImport属性被用来从不可控代码中调用一方法。”User32.dll”则设定了类库名。DllImport属性指定dll的位置,这个dll中包括调用的外部方法。Static修饰符则声明一个静态元素,而这个元素属于类型本身而不是上面指定的对象。extern则表示这个方法将在工程外部执行,使用DllImport导入的方法必须使用extern修饰符。
MessageBox 则是函数名,拥有4个参数,其返回值为数字。
大多数的API都能传递并返回值。
添中Click点击事件代码:
protected void button1_Click(object sender, System.EventArgs e)
{
MessageBox (0,"API Message Box","API Demo",0);
}
编译并运行这个程序,当你点击按钮后,你将会看到对话框,这便是你使用的API函数。
我的代码是
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
[DllImport("User32.dll")]
public static extern int MessageBox(int h, string m, string c, int type);请高手指点。
sh = ExitWindowsEx(REBOOT, dwReserved)
可程序怎么没有反映呢?
此函数。
能具体解释一下怎么用这个函数和关机函数配合使用么?
首先打开VS.Net ,创建一个新的C#工程,并添加一个Button按钮。当这个按钮被点击,则显示一个MessageBox对话框。
即然我们需要引用外来库,所以必须导入一个Namespace:
using System.Runtime.InteropServices;
接着添加下面的代码来声明一个API:
[DllImport("User32.dll")]
public static extern int MessageBox(int h, string m, string c, int type);
此处DllImport属性被用来从不可控代码中调用一方法。”User32.dll”则设定了类库名。DllImport属性指定dll的位置,这个dll中包括调用的外部方法。Static修饰符则声明一个静态元素,而这个元素属于类型本身而不是上面指定的对象。extern则表示这个方法将在工程外部执行,使用DllImport导入的方法必须使用extern修饰符。
MessageBox 则是函数名,拥有4个参数,其返回值为数字。
大多数的API都能传递并返回值。
添中Click点击事件代码:
protected void button1_Click(object sender, System.EventArgs e)
{
MessageBox (0,"API Message Box","API Demo",0);
}
编译并运行这个程序,当你点击按钮后,你将会看到对话框,这便是你使用的API函数。
http://bbs.jlu.edu.cn/cgi-bin/bbscon?board=VB&file=M.941681858.A&num=89&title=67