用IE上网的朋友都有这样的体会,IE的
地址栏会自动记录下输入过的网址,这样会方便以后访问该网址,但也泄露了你的隐私。有时为了加快上网速度,需要事先把网址输入到
地址栏中,但在离线时却很难保存进去,要是能在其中随意添加和删除网址就好了。下面就用VB编个小
程序轻松实现该功能。
编程原理:IE的地址栏中的网址都保存在注册表的子键“HKEY_CURRENT_USER\Software\
Microsoft\Internet Explorer\typedurls”下,只要对注册表进行添加/删除操作就可以实现上述想法,但每次都手动用注册表编辑器来修改既烦琐又危险。我们要的是只需通过简单的指指点点就可完成操作。
程序设计:新建一工程,在窗体Form1中添加一个ListView
控件,三个CommandButton:Caption属性分别为“显示”、“删除”、“添加”;和1个Label1
控件其Caption设为"IE地址栏网址列表" (如图)另外再添加一窗体Dialog,并添加二个Commandbutton按钮(OKButton,CancelButton)和两个TEXT文本框
控件以及两个Label标签并设置caption属性为“序号”和“网址”。
在工程添加一模块,加入操作注册表的
函数声明及常数,限于篇幅在此省略。窗体部分也仅保留核心
代码,form1
代码:
…………'用RegOpenKeyEx打开注册表位置lRet = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\typedurls", 0, KEY_ALL_ACCESS, hKey)If lRet Then MsgBox "Error": Exit SubDim lIndex As Long, aVName As String, lVName As Long, aData As String, lData As LongDim aAdd As StringlVName = 100aVName = Space$(lVName)lData = 100aData = Space$(lData) '用枚举函数列出注册表中的值lRet = RegEnumValue(hKey, lIndex, aVName, lVName, 0, REG_SZ, aData, lData)Do Until lRet = ERROR_NO_MORE_ITEMS For i = 1 To ListView1.ListItems.Count If aAdd = ListView1.ListItems.Item(i) Then Exit Sub Next i '把网址显示在列表栏中 ListView1.ListItems.Add , "list" & CStr(i), Left$(aVName, lVName) ListView1.ListItems("list" & CStr(i)).SubItems(1) = Left$(aData, lData) lVName = 100 lData = 100 lIndex = lIndex + 1 lRet = RegEnumValue(hKey, lIndex, aVName, lVName, 0, REG_SZ, aData, lData) i = i + 1 Loop '关闭注册表 lRet = RegCloseKey(hKey) If ListView1.ListItems.Count = 0 Then MsgBox "网址不存在,请退出!", vbOKOnly, "警告" Exit Sub End IfEnd SubPrivate Sub Command2_Click()If ListView1.ListItems.Count < 0 Then Exit Sub Dim lRet As Long, hKey As Long Dim i As Integer Dim c As Integer lRet = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\typedurls", 0, KEY_ALL_ACCESS, hKey) '从注册表中删除选中的项 RegDeleteValue hKey, ListView1.SelectedItem.Text lRet = RegCloseKey(hKey) If ListView1.ListItems.Count <> -1 Then ListView1.ListItems.Remove ListView1.SelectedItem.Index '从列表中删除选中的项 End If MsgBox "网址已成功删除!", vbOKOnly, "警告"End Sub…………
DIALOG窗体“:………… hKey = HKEY_CURRENT_USER lRet = RegOpenKeyEx(hKey, "Software\Microsoft\Internet Explorer\typedurls", 0, KEY_ALL_ACCESS, hkeyhand) '将文本框中的网址写入注册表 lRet = RegSetValueEx(hkeyhand, Text1.Text, 0, REG_SZ, ByVal Text2.Text, Len(strdata)) lRet = RegCloseKey(hkeyhand) MsgBox "添加成功!", vbOKOnly, "提示" Unload Me Exit Suberr: MsgBox err.Number Resume NextEnd Sub
按F5运行成功。本程序在Win98 SE+VB6.0下运行通过,源程序
下载地址:
www.cbifamily.com/down/200406/dizhi.rar。