CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

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

楼主latelord(龙过洋)2006-03-12 21:45:36 在 VB / 基础类 提问

在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

相关问题

  • 如何通过IP地址获得计算机名、计算机说明
  • 在VB程序中如何获得计算机名和计算机IP地址?
  • 请问,如何获得计算机名和用户名?
  • 如何获得局域网的所有计算机名?
  • 如何获得域中的所有计算机名!!!!!!
  • 如何获得本机的计算机名?
  • 如何从ip地址获得计算机名称
  • vb是如何获得计算机名的?
  • 如何获得XP下计算机当前用户名!
  • 如何获得本机的计算机名?

关键词

  • 计算机
  • 模块
  • 函数
  • getcomputername
  • dwlen
  • strstring
  • getcomputernamea
  • 计算机名
  • 出错
  • 引用

得分解答快速导航

  • 帖主:latelord
  • begintoday
  • daisy8675
  • rainstormmaster
  • kidc
  • fishmans

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo