如何获得计算机的计算机名

latelord 2006-03-12 09:45:36
在VB中如何获得计算机的计算机名?
...全文
436 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
latelord 2006-03-19
  • 打赏
  • 举报
回复
勉强弄好了,谢谢!
fishmans 2006-03-13
  • 打赏
  • 举报
回复
楼主你真强,楼上的都写这么明白了

你要么在模块里写一个函数返回计算机名,那么用时调用这个函数就可以了

要么定义一个全局变量,在程序开始时就先取到计算机名给这个变量,用时直接用这个变量就行了,当然如果计算机使用者是个变态喜欢更改计算机名那就用上面那个方法好了~
latelord 2006-03-13
  • 打赏
  • 举报
回复
非常谢谢!
可我要求在模块里得到计算机名,其它窗口在加载时就要用到。所以不要点击某组件或在某窗口加载时来得到。请问该如何做呢?
rayxu 2006-03-13
  • 打赏
  • 举报
回复
顶,这么多的高手,学习。
latelord 2006-03-13
  • 打赏
  • 举报
回复
实在太不好意思了!
我要模块里写下如下代码时:
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也出错。
lrvinghu 2006-03-13
  • 打赏
  • 举报
回复
引用System.Environment
dim ss as string=MachineName
ss的值就是计算机名
northwolves 2006-03-13
  • 打赏
  • 举报
回复
Environ("ComputerName")比较简单
kidc 2006-03-12
  • 打赏
  • 举报
回复
不好意思。。看错了。。
kidc 2006-03-12
  • 打赏
  • 举报
回复
一个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 Long
rainstormmaster 2006-03-12
  • 打赏
  • 举报
回复
抱歉,回错地方了,顺便补充一种办法吧:
MsgBox VBA.Environ("ComputerName")
rainstormmaster 2006-03-12
  • 打赏
  • 举报
回复
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

如果想要包括子目录下的文件和文件夹的话,要用递归函数实现
daisy8675 2006-03-12
  • 打赏
  • 举报
回复
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
begintoday 2006-03-12
  • 打赏
  • 举报
回复
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

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧