VB编写QQ在线查询软件

软件世界

一日在网上闲逛,下载了一个QQ在线查询软件,不过发现它很不好用,很容易出现超时错误。于是就萌发了用VB自己做了一个的想法,最终得以实现,现介绍如下。

一、原理

浏览以下特定的地址,如果那个QQ在线的话,就会出现在线的彩色图标;反之则出现黑色离线图标。地址如下:
  http://home.meetchinese.com/qqol/qqol.php?s=aa&qq=xxx
  注:aa为图标样式10-14,xxx是QQ号码
  http?//www.592bb.com/qq/qq.php?qq=xxx&style=a
  注:a是图标样式xxx是QQ号码
  http://www.pcbtech.net/cgi-bin/qq.cgi?oicq=xxx
  注:xxx为QQ号码

二、设计

首先运行VB,新建一个EXE工程。在form上添加两个frame控件,一个命名为“查询网站-选择”;另外一个命名为“QQ号码-输入”。然后在第一个frame中添加三个Option buttion控件,caption分别是上面三个地址。例如"http://www.meetchinese.com";"http://www.592bb.com";"http://www.pcbtech.net"。在另外一个frame中间添加一个textbox控件(用来输入QQ号码),一个combobox控件(用来选择图标样式,其中IMEmode设置为0),一个WebBrowser控件(用来浏览上面的地址,此控件需要添加,方法:右击控件表单,选择部件,在Microsoft Internet Controls前面打钩),一个command控件(用来启动WenBrowser控件)。

三、源代码

'在通用中添加以下代码
  Dim num As String
  Dim chose y As Integer
  Dim qqurl As String
  Dim qqstyle As String
  '双击窗体添加为以下代码
  Private Sub Form_Load 
  chose = 0
  With Me.Combo1
  AddItem "10"
  AddItem "11"
  AddItem "12"
  ToolTipText = "选择一个QQ图标样式"
  End With
  End Sub
  '选择form的unload属性,添加为以下代码
  Private Sub Form_UnloadCancel As Integer 
  y = MsgBox"你真的要退出吗?" vbQuestion + vbYesNo "QQ在线查询" 
  If y = vbNo Then Cancel = -1
  End Sub
  '分别双击三个option button控件,再分别添加为以下代码
  Private Sub Option1_Click 
  chose = 1
  End Sub
  Private Sub Option2_Click 
  chose = 2
  End Sub
  Private Sub Option3_Click 
  chose = 3
  End Sub
  '双击ComboBox控件,添加为以下代码
  Private Sub Combo1_Click 
  qqstyle = Me.Combo1.Text
  End Sub
  '双击command botton控件,添加为以下代码
  Private Sub Command1_Click 
  num = Me.Text1.Text
  Select Case chose
  Case 1
  qqurl = "http://home.meetchinese.com/qqol/qqol.php?s=" & qqstyle & "&qq=" & Me.Text1.Text
  Case 2
  qqurl = "http://www.592bb.com/qq/qq.php?qq=" & num & "& style=" & qqstyle
  Case 3
  qqurl = "http://www.pcbtech.net/cgi-bin/qq.cgi?oicq=" & num
  End Select
  Me.WebBrowser1.Navigate qqurl
  End Sub
  '以上的代码中,"&"的两边都要保留空格
  运行调试:按F5启动程序,(如果你没有在网上,系统也许会提示让你联接到internet,这是因为那个WebBrowser需要联接到网络),在文本框中间填写好你要查询QQ号码,然后选择一个样式,点击那个命令控件,等一会儿就可以看到一个图案出现在WebBrowser里边。如果是彩色的,则表示在线;反之则表示不在线。
  注:本程序在Windows98、VB6下调试通过。