VB编程技巧两则(2) 黄立伟 2001年 7期 #1 一、获取和修改计算机名字   在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运行该程序。   #1 二、编程实现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)'允许热启