怎样有选择的清除IE地址栏中的网址 ( 积分: 20 )

  • 主题发起人 主题发起人 jhlz1968
  • 开始时间 开始时间
J

jhlz1968

Unregistered / Unconfirmed
GUEST, unregistred user!
我的表单上有一个CheckListBox组件,表单启动时,我从注册表中把IE地址栏中的网址已经读到了CheckListBox中,现在我想根据选择清除部分网址,代码如下:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
urlKey: TRegistry;
i: Integer;
KeyList: TStringList;
begin
urlKey:=TRegistry.Create;
keyList:=TStringList.Create;
try
urlKey.RootKey:=HKEY_CURRENT_USER;
urlKey.OpenKey('/SoftWare/Microsoft/Internet Explorer/TypedURLs/',True);
urlKey.GetValueNames(keyList);
for i:=0 to keyList.Count-1 do
begin
if CheckListBox1.Checked then
begin
urlKey.DeleteValue(CheckListBox1.items.Strings);
end;
end;
urlKey.closekey;
finally
urlKey.Free;
keyList.Free;
end;
end;

却总是删除不了。请各位帮忙。
 
我的表单上有一个CheckListBox组件,表单启动时,我从注册表中把IE地址栏中的网址已经读到了CheckListBox中,现在我想根据选择清除部分网址,代码如下:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
urlKey: TRegistry;
i: Integer;
KeyList: TStringList;
begin
urlKey:=TRegistry.Create;
keyList:=TStringList.Create;
try
urlKey.RootKey:=HKEY_CURRENT_USER;
urlKey.OpenKey('/SoftWare/Microsoft/Internet Explorer/TypedURLs/',True);
urlKey.GetValueNames(keyList);
for i:=0 to keyList.Count-1 do
begin
if CheckListBox1.Checked then
begin
urlKey.DeleteValue(CheckListBox1.items.Strings);
end;
end;
urlKey.closekey;
finally
urlKey.Free;
keyList.Free;
end;
end;

却总是删除不了。请各位帮忙。
 
没有人知道?分不够可以再加
 
可以实现啊!
如下:
1。先把IE地址栏中的网址读到CheckListBox中
procedure TForm1.BitBtn1Click(Sender: TObject);
var
urlKey: TRegistry;
i: Integer;
KeyList: TStringList;
begin
urlKey:=TRegistry.Create;
keyList:=TStringList.Create;
try
urlKey.RootKey:=HKEY_CURRENT_USER;
urlKey.OpenKey('/SoftWare/Microsoft/Internet Explorer/TypedURLs/',True);
urlKey.GetValueNames(keyList);
CheckListBox1.Items:=keyList; //添加到CheckListBox中

urlKey.closekey;
finally
urlKey.Free;
keyList.Free;
end;
end;

2。在CheckListBox中选种要删除的地址,然后删除:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
urlKey: TRegistry;
i: Integer;
KeyList: TStringList;
begin
urlKey:=TRegistry.Create;
keyList:=TStringList.Create;
try
urlKey.RootKey:=HKEY_CURRENT_USER;
urlKey.OpenKey('/SoftWare/Microsoft/Internet Explorer/TypedURLs/',True);
urlKey.GetValueNames(keyList);
for i:=0 to keyList.Count-1 do
begin
if CheckListBox1.Checked then
begin
urlKey.DeleteValue(CheckListBox1.items.Strings);
end;
end;
urlKey.closekey;
finally
urlKey.Free;
keyList.Free;
end;
end;

这样删除后,虽然CheckListBox没有清空,但注册表中已经删除了。

对于完全清空注册表的的IE中的选项,我感觉好想不止着一个地方,好想还有。
 
注册表的操作每读取一个值需要关闭后重新加载.
 
TO:无泪
1、用你的方法加载到checklistbox,显示的是url1,url2,url3……,不是具体网址,如http://www.sina.com/cn
2、你的删除方法虽然注册表删除了,但如果删除的是url2(中间的),打开注册表发现只有url1,url3,不能自动更新,这样打开IE,url3是不会显示的
 
好象还要通知IE注册表已经改变,重新加载,具体怎么做我忘记了
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
603
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
630
import
I
后退
顶部