VB编程的必备技巧(二)

  四.获取和修改计算机名字的方法

     在Win 95/98/2000中,计算机有一个名字。运行regedit,在"HKEY-LOCAL-MACHINESystemCurrentControlSetcontrolComputerNameComputerName"中将发现"ComputerName"="Default"( 或其它字符串),在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运行该程序。

     五.给VB控件PictureBox加滚动条的方法

     用过PictureBox控件的朋友都知道,在其中我们可以加载图片。当图片不是很大时,可能还不会有什么问题,但是,如果所加载的图片比PictureBox大时,我们只能看到图片的一部分,那么,怎么才能看到其他的部分呢?为了解决上述问题,我们可以在图片框(PictureBox)内部加上水平和垂直滚动条,利用滚动条来显示看不到的图片。具体方法如下:

    首先给工程(Project)添加一个OCX控件,单击选单上的工程(Project)选单项,在弹出的下拉选单中点击组件(Components),选中其中的"Microsoft Common Dialog Control 5.0",确定完成加载工作;然后画一个PictureBox,采用VB提供的默认名字Picture1, 再在Picture1上面画一个PictureBox,默认名字为Picture2,注意别忘了设置:Picture2.AutoSize=TRUE;接着,加上水平和垂直滚动条,默认名字分别为:HScroll1,VScroll1;以后加载图形到Picture2上,就可以了;最后,在窗体中引入其它控件:一个按钮(Command),默认名为Command1和一个"Microsoft Common Dialog Control",默认名为CommonDialog1。具体VB代码如下:

Private Sub Form-Load()
Picture2.Left = 0
Picture2.Top = 0
Picture2.Width = Picture1.Width
Picture2.Height = Picture1.Height
VScroll1.Min = 0
HScroll1.Min = 0 
HScroll1.Min = 0
VScroll1.Max = Picture2.Height - Picture1.Height
HScroll1.Max = Picture2.Width - Picture1.Width
If HScroll1.Max 〈 0 Then HScroll1.Enabled = False
If VScroll1.Max 〈 0 Then VScroll1.Enabled = False
End Sub
Private Sub Command-Click()
On Error GoTo ErrExit
CommonDialog1.Filter = 
"Bitmap file(*.bmp)|*.bmp|All File(*.*)|*.*"
CommonDialog1.FilterIndex = 1
CommonDialog1.ShowOpen
Picture2.Picture = LoadPicture(CommonDialog1.filename)
VScroll1.Min = 0
HScroll1.Min = 0
VScroll1.Max = Picture2.Height - Picture1.Height
HScroll1.Max = Picture2.Width - Picture1.Width
If HScroll1.Max 〈 0 Then HScroll1.Enabled = False
If VScroll1.Max 〈 0 Then VScroll1.Enabled = False
ErrExit: 
End Sub
Private Sub HScroll1-Change()
Picture2.Left = -HScroll1.Value
End Sub
Private Sub VScroll1-Change()
Picture2.Top = -VScroll1.Value
End Sub


     该程序通过点击Command1按钮,在弹出的对话框中选择一个图形文件加载到Picture2中,利用水平和垂直滚动条就可以实现图片的滚动。

     六.用VB做聊天程序的方法

     所谓"聊天"是指两个程序能够发送数据给对方。这个程序涉及到数据通讯的知识,仿佛很复杂,不过,由于VB给我们提供了一个Winsock控件,问题就变得很简单了。

     先编写"聊天(主机)"程序。在窗体里添加Winsock控件,并设置其Protocol属性为1-SckUDPProtocol,其他属性为缺省值。接着添加两个标签和两个文本框,设置两个标签的标题属性分别为"接收窗"和"发送窗";两个文本框的标题属性为空。最后编写代码:

     1."聊天(主机)"

Private Sub Form-Load()
′设置网络地址
Winsock1.LocalPort=1024
Winsock1.RemoteHost="202.96.6.1"
Winsock1.RemotePort=1999
End Sub
Private Sub Text1-Change()
′发送用户输入的内容
Winsock1.SendData Text1.Text
End Sub
Private Sub Winsock1-DataArrival
(Byval bytesTotal As Long)
Dim rec As String
′接收对方数据并在文本框内显示
Winsock1.GetData rec, vb String
Text2.Text=rec
End Sub


     2."聊天(副机)"

Private Sub Form_Load()

′设置网络地址

Winsock1.LocalPort=1999
Winsock1.RemoteHost="202.96.6.1"
Winsock1.RemotePort=1024


     其他部分程序与(主机)相同。最后将两个程序存盘,并编译成执行(.Exe)文件。现在就可以使用这个程序进行对话了。