在VB中取得Windows的当前XX 电脑资料
首先要在新建的程序中参加一个Module,在该Module中作如下声明:
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" 〔ByVal lpBuffer As String, ByVal nSize As Long〕 As Long
这里的几个参数说明一下:lpBuffer是一个字符串,用以返回Windows的目录值〔实际上是一个指针〕,这个目录值不带反斜杠的,比方C:\Windows,但有一种情况例外:当Windows 在根目录下时返回反斜杠,比方C:\;第二个参数是前一个字串的长度,你得告诉系统为返回值预留的字串的最大长度〔其实这个参数实在有些鸡肋的感觉〕;函数的返回值,在成功的情况下是目录字符串的长度,在不成功时返回NULL值,还有一种情况,就是返回值超出预留的串长度,那么该函数就返回实际值应有的长度,
函数说明完毕,可以看到,为了防止出错情况,函数引入了nSize参数,但只要使用下述经典的取目录代码,可保证程序平稳运行。
Public Function MyGetWinDirectory〔〕 As String
Dim sBuffer As String
Dim lSize As Long
sBuffer = String〔255, 0〕
lSize = GetWindowsDirectory 〔sBuffer, Len〔sBuffer〕〕
sBuffer = Left〔sBuffer, lSize〕
sBuffer = sBuffer + "\"
MyGetWinDirectory = sBuffer
End Function
这里程序首先为字符预留了255Bytes,应该是足够了,不会有人用这么长的Windows目录名的,更重要的是超出255的长文件名Windows是不支持的;然后调用GetWindowsDirectory函数,通过返回值lSize截取缓冲区中有用的局部重新定义sBuffer;最后再加上反斜杠,形成完整的路径名,
现在你可以试一下你的新函数:在窗体Form1中参加一个文本框Text1,然后再参加一个命令键Com nd1,在Com nd1Click〔〕 中参加以下代码:
Private Sub Com nd1Click〔〕
Text1 = MyGetWinDirectory
字符串长度超出定义值MsgBox Text1
End Sub
最后运行程序,占击一下Com nd1,看一下实际的运行效果。
模板,内容仅供参考
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论