上网最麻烦的事莫过于在地址栏中输入网址了。虽然有收藏夹帮忙,喜爱的网站多了它也日渐臃肿,占用资源不算,用起来也不是很方便。用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编程乐园的其它文章和源码自行补充。->
|