線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1634
推到 Plurk!
推到 Facebook!

如何将注册表子键分支列出并删除

尚未結案
vclphi
一般會員


發表:28
回覆:39
積分:13
註冊:2003-03-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-05 17:03:22 IP:61.154.xxx.xxx 未訂閱
我想将注册表HKEY_CURRENT_USER\software\microsoft\windows\Internet Explorer\TypedURLs子键分支列于listbox2中,并对其中一些项删除,请问代码如何写?我的代码如下: procedure TForm1.BitBtn2Click(Sender: TObject); begin try reguni:=tregistry.Create; finally reguni.RootKey:=HKEY_CURRENT_USER; if reguni.OpenKey('\software\microsoft\windows\Internet Explorer\TypedURLs',false) then messagedlg('OK',mtinformation,[mbok],0); reguni.GetvalueNames(listbox2.Items); end; end; 这reguni.GetvalueNames(listbox2.Items);显然不妥,该如何改?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-06 08:01:03 IP:202.39.xxx.xxx 未訂閱
利用 procedure GetKeyNames(Strigns: TStrings); 與 function DeleteKey(const Key: String): Boolean;    --- 歡迎光臨 KTop 研究院--<-<-<@
vclphi
一般會員


發表:28
回覆:39
積分:13
註冊:2003-03-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-08 10:28:43 IP:61.154.xxx.xxx 未訂閱
引言: 利用 procedure GetKeyNames(Strigns: TStrings); 與 function DeleteKey(const Key: String): Boolean;
我希望列出与删除的是键值项数据中的键值。
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-08 16:33:28 IP:61.155.xxx.xxx 未訂閱
●DeleteKey方法 Function DeleteKey(const Key:string):Boolean; 删除一个键及相关联的数据,在win95中子键也将被删除,NT中子键必须一个个删除。 ●DeleteValue方法 Function DeleteValue (const Name:string):Boolean; 删除当前键中指定的一个数据值name。
vclphi
一般會員


發表:28
回覆:39
積分:13
註冊:2003-03-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-10 16:57:03 IP:61.154.xxx.xxx 未訂閱
HKEY_CURRENT_USER\software\microsoft\windows\Internet Explorer\TypedURLs上记录的是IE上网留下的URL,我想将这些URL在listbox2中 列出,并删除其中一些。
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-10 17:21:54 IP:202.39.xxx.xxx 未訂閱
const
  sKey = '\software\microsoft\windows\Internet Explorer\TypedURLs';    //將 url1 .. url? 的 ValueNames 載入 ListBox1 中
procedure TForm1.Button1Click(Sender: TObject);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_CURRENT_USER;
    reg.OpenKey(sKey, False);
    reg.GetValueNames(ListBox1.Items);
  finally
    reg.Free;
  end;
end;    //將 url? 這個 ValueName 的 Value 顯示在 ListBox2
procedure TForm1.ListBox1Click(Sender: TObject);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_CURRENT_USER;
    reg.OpenKey(sKey, False);
    ListBox2.Clear;
    ListBox2.Items.Add(reg.ReadString(ListBox1.Items[ListBox1.ItemIndex]));
  finally
    reg.Free;
  end;
end;    // 刪除選定的 url? 
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  reg: TRegistry;
begin
  if MessageDlg('確定刪除此 Value?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
    reg := TRegistry.Create;
    try
      reg.RootKey := HKEY_CURRENT_USER;
      reg.OpenKey(sKey, False);
      if reg.DeleteValue(ListBox1.Items[ListBox1.ItemIndex]) then begin
        ListBox1.Items.Delete(ListBox1.ItemIndex);
        ShowMessage('刪除成功');
      end;
    finally
      reg.Free;
    end;
  end;
end;
--- 歡迎光臨 KTop 研究院--<-<-<@
vclphi
一般會員


發表:28
回覆:39
積分:13
註冊:2003-03-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-11 11:43:21 IP:61.154.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject); 不能將 url1 .. url? 的 ValueNames 載入 ListBox1 中 可能是这句reg.GetValueNames(ListBox1.Items);有问题。
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-11 11:47:17 IP:202.39.xxx.xxx 未訂閱
小弟這裏用 Delphi 5 測過沒問題 請問您是不能載入 ListBox1 且沒錯誤訊息 還是有什麼錯誤訊息?    --- 歡迎光臨 KTop 研究院--<-<-<@
vclphi
一般會員


發表:28
回覆:39
積分:13
註冊:2003-03-06

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-09-12 16:57:43 IP:61.154.xxx.xxx 未訂閱
我是ListBox1上沒訊息。 另外请问IE的地址栏下拉列表中的URL保存在哪个目录下? 我知道其在注册表中保存在HKEY_CURRENT_USER\software\microsoft\windows\Internet Explorer\TypedURLs子键分支下。 不会是我们每在地址栏中键入一地址,就写一次注册表吧?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-09-12 18:25:37 IP:202.39.xxx.xxx 未訂閱
const
  sKey = '\software\microsoft\windows\Internet Explorer\TypedURLs';    //將 url1 .. url? 的 ValueNames 載入 ListBox1 中
procedure TForm1.Button1Click(Sender: TObject);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_CURRENT_USER;
    if reg.OpenKey(sKey, False) then
      reg.GetValueNames(ListBox1.Items); // 檢查程式有沒有 run 到這一行?
  finally
    reg.Free;
  end;
end;
--- 歡迎光臨 KTop 研究院--<-<-<@
系統時間:2024-05-18 13:41:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!