龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

做个“网络助手”程序

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
上网最麻烦的事莫过于在地址栏中输入网址了。虽然有收藏夹帮忙,喜爱的网站多了它也日渐臃肿,占用资源不算,用起来也不是很方便。用VB做个“网络助手”吧! 这个网络助手至少
上网最麻烦的事莫过于在地址栏中输入网址了。虽然有收藏夹帮忙,喜爱的网站多了它也日渐臃肿,占用资源不算,用起来也不是很方便。用VB做个“网络助手”吧!
  这个网络助手至少要实现这样的功能:双击用户界面的网站名称,就能调出浏览器并进入该网站。(当然,如果你愿意,还可以添加其它功能,如删除、修改、添加网址,自动拨号,计时等)构想是这样:用文本文档记录网站名称,程序运行时读取文本文档并在用户界面显示网站名,当用户双击网站名称时调出网址、链接。
  为此,着手编程之前我们必须做两项准备工作:
  一.用记事本编写一个名为homepage的TXT文档。每行写一个网站名称,不要有空行。
  二.用数据库程序Access(Office组件之一)建立一个名为address的数据库,表名为net,主字段名为netaddress。给数据库输入记录:按照homepage.txt文档中的网站顺序写好各网站主页的详细网址,结束后存盘退出。
  
  现在可以进入具体编程了。
  这个程序所需控件不多:一个data控件,一个ListBox控件和一个Label控件即可。在属性窗口将data控件与库文件及其表链接好,并将Label控件与Data控件绑定。接着调整一下各控件的位置和大小。
  
  下面是具体的代码,我将在代码中穿插作些必要的解释:
  
  OptionExplicit
  '调用浏览器的API
  PrivateDeclareFunctionShellExecuteLib"shell32.dll"Alias"ShellExecuteA"(ByValhwndAsLong,ByVallpOperationAsString,ByVallpFileAsString,ByVallpParametersAsString,ByVallpDirectoryAsString,ByValnShowCmdAsLong)AsLong
  DimSortAsString'申明选择类别
  DimaddressAsString'申明网址
  Dimaddresslink'申明网址链接
  DimAllLinesAsNewCollection'内存中的行数据库(你可以看得出来,模仿了"日积月累"的代码来实现对文档文档的读取和显示)
  DimCurrentLineAsLong'当前行集合索引
  
  '链接网址声明
  PrivateSubLink()
  address=ShellExecute(0&,vbNullString,address,vbNullString,vbNullString,vbNormalFocus)
  EndSub
  
  'Form_Load事件
  PrivateSubForm_Load()
  Data1.DatabaseName=App.Path "address.mdb"
  '定位库文件(虽然在属性中已经绑定了数据库,为使程序能在别的机器上正常运行,这行是有必要的)
  Data1.RecordSource="net"'字段
  Data1.Visible=False'data控件不可见
  DimnextLineAsString'从文件中读出的每一行
  DimInFileAsInteger'文件的描述符
  InFile=FreeFile
  OpenApp.Path "homepage.txt"ForInputAsInFile'打开文件
  WhileNotEOF(InFile)
  LineInput#InFile,nextLine
  AllLines.AddnextLine
  Wend
  CloseInFile
  '将所有行集合按顺序添加到列表框
  DimiAsInteger
  Fori=0ToAllLines.Count-1
  GetNextLine
  Nexti
  EndSub
  
  '单击列表框
  PrivateSubList1_Click()
  DimIndAsInteger
  Ind=List1.ListIndex
  IfInd<Data1.Recordset.RecordCountThen
  Data1.Recordset.AbsolutePosition=Ind
  Else
  Data1.Recordset.Move(Ind)
  EndIf
  address=Label1.Caption
  EndSub
  
  '双击列表框
  PrivateSubList1_dblClick()
  Link
  EndSub
  
  '提取当前行
  PublicSubGetCurrentLine()
  IfAllLines.Count>0Then
  List1.AddItemAllLines.Item(CurrentLine)
  EndIf
  EndSub
  
  '提取下一行
  PrivateSubGetNextLine()
  CurrentLine=CurrentLine 1
  IfAllLines.Count<CurrentLineThen
  CurrentLine=1
  EndIf
  GetCurrentLine
  EndSub
  
  至此,程序已经可以达成我们的目的了。如果需要添加其它功能,请参阅VB编程乐园的其它文章和源码自行补充。->

精彩图集

赞助商链接