VB.Net怎么调用API函数 语言是VB。是VB.NET不是VB!

来源:百度知道 编辑:UC知道 时间:2024/06/08 15:38:40
能不能给个例子!最好是NetUserEum,就是获取本机用户列表的!我的系统是日语的,vb.net也是日语版的,我自己试的时候出乱码,请各位朋友高手帮帮忙!我的代码是:
Declare Function NetUserEnum Lib "Netapi32.dll" (ByRef ServerName As Byte, ByVal Level As Integer, ByVal filter As Integer, ByRef bufptr As Integer, ByVal prefmaxlen As Integer, ByRef entriesread As Integer, ByRef totalentries As Integer, ByRef resume_handle As Integer) As Integer

Declare Sub RtlMoveMemoryinfo Lib "Kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As USER_INFO_0, ByRef Source As Integer, ByVal Length As Integer)
Declare Sub RtlMoveMemorybyte Lib "Kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Byte, ByRef Source As Integer, ByVal Length As Integer)

函数部分:
Sub EnumUsers(ByVal cboUsers As ComboBox)
cboUsers.Items.Clear()
Dim lngWin32apiResultCode As Integer = 0
Dim strServerName() As Byte
Dim lngBufPtr As Integer

TextBox1.Text = Page.Request.UserHostAddress ‘IP
TextBox2.Text = System.Net.Dns.Resolve(TextBox1.Text).HostName ’Name

用取得的IP做参数,获取机器名。

API(Advanced Programmers Interface,高级程序员接口)(注:API实际是指Application Programming Interface,应用程序编程接口;此处疑为原文错误,不过在VB中也可以这么说吧!)是一套用来控制Windows的各个部件(从桌面的外观到位一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以Windows告诉发生了什么.
这在某种程度上很象Windows的天然代码.其他的语言只是提供一种能自动而且更容易的访问API的方法.VB在这方面作了很多工作.它完全隐藏了API并且提供了在Windows环境下编程的一种完全不同的方法.
这也就是说,你用VB写出的每行代码都会被VB转换为API函数传递给Windows.例如,Form1.Print...VB 将会以一定的参数(你的代码中提供的,或是默认参数)调用TextOut 这个API函数.
同样,当你点击窗体上的一个按钮时,Windows会发送一个消息给窗体(这对于你来说是隐藏的),VB获取这个调用并经过分析后生成一个特定事件(Button_Click).
API函数包含在Windows系统目录下的动态连接库文件中(如User32.dll,GDI32.dll,Shell32.dll...).

API 声明

正如在"什么是API"中所说,API函数包含在位于系统目录下的DLL文件中.你可以自己输入API函数的声明,但VB提供了一种更简单的方法,即使用API Text Viewer.
要想在你的工程中声明API函数,只需运行API Text Viewer,打开Win32api.txt(或.MDB如果你已经把它转换成了数据库的话,这样可以加快速度.注:微软的这个文件有很多的不足,你可以试一下