如何获得计算机的计算机名
在VB中如何获得计算机的计算机名? 问题点数:20、回复次数:13Top
1 楼begintoday(muyu)回复于 2006-03-12 21:48:55 得分 8
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Command1_Click()
Dim Name As String, Length As Long
Length = 225
Name = String(Length, Chr(0))
GetComputerName Name, Length
Name = Left(Name, Length)
Label1.Caption = Name
End Sub
Top
2 楼daisy8675(莫依 沉迷)回复于 2006-03-12 21:48:57 得分 5
Option Explicit
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
Private Sub Form_Load()
Dim dwLen As Long
Dim strString As String
dwLen = MAX_COMPUTERNAME_LENGTH + 1
strString = String(dwLen, "X")
GetComputerName strString, dwLen
strString = Left(strString, dwLen)
MsgBox "You computer name's " & strString
End Sub
Top
3 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-12 23:09:33 得分 0
Option Explicit
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Const LB_DIR = &H18D
Private Const LB_RESETCONTENT = &H184
Private Const DDL_READWRITE = &H0
Private Const DDL_READONLY = &H1
Private Const DDL_HIDDEN = &H2
Private Const DDL_SYSTEM = &H4
Private Const DDL_DIRECTORY = &H10
Private Const DDL_ARCHIVE = &H20
Private Const DDL_DRIVES = &H4000
Private Const DDL_EXCLUSIVE = &H8000&
Private Const DDL_POSTMSGS = &H2000
Private Const DDL_FLAGS = DDL_ARCHIVE Or DDL_DIRECTORY
Dim mPath As String
Private Sub Command1_Click()
Dim mPath As String
mPath = "g:\downloads\" '换成你的文件夹路径
Dim spath As String
spath = mPath + "*.rar"
'clear and populate the listbox
Call SendMessage(List1.hwnd, LB_RESETCONTENT, 0, ByVal 0)
Call SendMessage(List1.hwnd, LB_DIR, DDL_EXCLUSIVE Or DDL_ARCHIVE, ByVal spath)
End Sub
Private Sub Command2_Click()
Dim mPath As String
mPath = "g:\downloads\" '换成你的文件夹路径
Dim spath As String
spath = mPath + "*.*"
Call SendMessage(List1.hwnd, LB_RESETCONTENT, 0, ByVal 0)
Call SendMessage(List1.hwnd, LB_DIR, DDL_EXCLUSIVE Or DDL_DIRECTORY, ByVal spath)
End Sub
Private Sub Form_Load()
Command1.Caption = "get rar files"
Command1.Caption = "get Directory"
End Sub
如果想要包括子目录下的文件和文件夹的话,要用递归函数实现Top
4 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-12 23:11:55 得分 2
抱歉,回错地方了,顺便补充一种办法吧:
MsgBox VBA.Environ("ComputerName")Top
5 楼kidc(海盗乌托邦)回复于 2006-03-12 23:41:45 得分 2
一个lab控件 form 里的代码.
Private Sub Form_Load()
Dim s As String
Dim cnt As Long
Dim dl As Long
Dim CurUser As String
cnt = 199
s = String$(200, 0)
dl = GetUserName(s, cnt)
If dl <> 0 Then CurUser = Left$(s, cnt) Else CurUser = ""
Label1.Caption = " " & CurUser
End Sub
模块里的代码:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As LongTop
6 楼kidc(海盗乌托邦)回复于 2006-03-12 23:47:52 得分 0
不好意思。。看错了。。Top
7 楼latelord(龙过洋)回复于 2006-03-13 00:07:11 得分 0
非常谢谢!
可我要求在模块里得到计算机名,其它窗口在加载时就要用到。所以不要点击某组件或在某窗口加载时来得到。请问该如何做呢?Top
8 楼fishmans(金脚指)回复于 2006-03-13 00:53:41 得分 3
楼主你真强,楼上的都写这么明白了
你要么在模块里写一个函数返回计算机名,那么用时调用这个函数就可以了
要么定义一个全局变量,在程序开始时就先取到计算机名给这个变量,用时直接用这个变量就行了,当然如果计算机使用者是个变态喜欢更改计算机名那就用上面那个方法好了~Top
9 楼northwolves(狼行天下)回复于 2006-03-13 01:56:50 得分 0
Environ("ComputerName")比较简单Top
10 楼rayxu(有心就成)回复于 2006-03-13 09:27:50 得分 0
顶,这么多的高手,学习。Top
11 楼lrvinghu(多多指教)回复于 2006-03-13 17:35:36 得分 0
引用System.Environment
dim ss as string=MachineName
ss的值就是计算机名Top
12 楼latelord(龙过洋)回复于 2006-03-13 19:56:00 得分 0
实在太不好意思了!
我要模块里写下如下代码时:
Option Explicit
Public Declare Function getcomputername Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Global pIP As String
Public Function getjsjname(name As String)
Dim name As String, Length As Long
Length = 225
name = String(Length, Chr(0))
getcomputername name, Length
name = Left(name, Length)
End Function
pIP = getjsjname()
Global Const pConn As String = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=booklib;Data Source=" & pIP
在另一个窗口的UserDocument_Initialize()的第一句:cn.Open pConn 就出错了,提示pConn没有定义。函数改为过程Sub也不行。请问哪个地方出错了?实在不好意思,不怎懂。
再就 “引用System.Environment
dim ss as string=MachineName
ss的值就是计算机名 ”
我在“工程——引用”里怎也找不着System.Environment。我的是VB6,windows2000。
写 “MsgBox VBA.Environ("ComputerName")”之前要引用什么吗?不要的话会出错,加上GetComputerName也出错。
Top
13 楼latelord(龙过洋)回复于 2006-03-19 21:39:50 得分 0
勉强弄好了,谢谢!Top




