微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题VB编程技巧两则(2)
栏目软件世界
作者黄立伟
发布2001年7期
  一、获取和修改计算机名字
  在Win95/98/2000中,每台计算机都有一个名字。运行regedit后,我们可以在“HKEY-LOCAL-MACHINE\System\CurrentControlSet\control\ComputerName\ComputerName”中发现“ComputerName”=“计算机名”,在regedit下可以查看和修改这个名字。我们还可在程序中通过Win32API提供的GetComputerName、SetComputerName这两个函数来查看和修改计算机的名字,这对于编写基于网络的应用程序是很重要的。下面以VB为例来探讨如何编写一个可查看和修改计算机名字的程序。
  1.插入一个新模块,在其中添加如下代码:
  '声明 GetComputerName
  Declare Function GetComputerName Lib“kernel 32”Alias“GetComputerNameA”(Byval lpBuffer As String,nSize As Long)As Long
  '声明 SetComputerName
  Declare Function SetComputerName Lib“kernel 32”Alias“SetComputerNameA”(Byval lp ComputerName As String)As Long
  '定义一个获取计算机名字的函数
  Public Function GetCName (CName) As Boolean
  Dim sComputerName As String '计算机的名字
  Dim lComputerName As Long
  '计算机名字的长度
  Dim lResult As Long
  'GetComputerName的返回值
  Dim RV As Boolean
  'GetCName返回值,若为TRUE则表示操作成功
  lComputerNameLen=256
  sComputerName=Space (lComputerNameLen)
  lResult=GetComputerName(sComputerName,lCompputerNameLen)
  If lResult <>0 Then Cname=Left$(sComputerName,lComputerNameLen)
  RV=True
  Else RV=False
  End If
  GetCName=RV
  End Function
  '定义一个修改计算机名字的函数
  Public Function SetCName(CName) As Boolean
  Dim lResult As Long
  Dim RV As Boolean
  lResult=SetComputerName(CName)
  If lResult <>0 Then
  RV=True'修改成功
  Else RV=False
  End If
  SetCName=RV
  End Function
  2.在窗体中添加一命令按钮Command1,双击该按钮并在其中添加如下代码:
  Sub Command1-Click() 
  DIM CN AS String
  x=GetCName(CN)
  Print “This Computer Name is :”,CN
  CN=“MYCOMPUTER”
  x=SetCName (CN) 
  Print “Now the Computer name is:”,CN
  End Sub
  OK,保存上述设置和代码,然后按F5运行该程序。
   二、编程实现Windows 95/98操作系统热启动
  要利用程序实现系统的重新启动,可以在你的程序中调用API函数来实现。建一个子函数:(以VB为例)
  Declare Function SystemParametersInfo Lib “user32” Alias -
  “SystemParametersInfo”(ByVal uAction As Long,ByVal uParam As Long,
  ByVal lpvParam As Any, ByVal fuWinIni As Long)As Long
  Sub DisableCtrlAltDelete(bDisabled As Boolean)
  Dim X As Long
  X=SystemParametersInfo(97, bDisabled,CStr(1), 0)
  End Sub
  Call DisableCtrlAltDelete(true)'禁止热启
  Call DisableCtrlAltDelete(false)'允许热启