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

Registry 的問題

尚未結案
bennykyp
一般會員


發表:11
回覆:31
積分:8
註冊:2004-10-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-15 15:31:01 IP:219.93.xxx.xxx 未訂閱
R.Access := KEY_READ; 為何在 Delphi 2 不能使用呢 ? Delphi 5 就沒問題    是否在 delphi 2 有不同的指令, 也能達到與 Delphi 5 的相同功能.        Function Reg_GetKeyNames(RootKey : DWORD; AKey : String): TStringList; var   R: TRegistry; begin   Result := TStringList.Create;   R := TRegistry.Create;   Try     R.RootKey := RootKey;     R.Access := KEY_READ;     if R.OpenKey(AKey, False) then     begin       R.GetKeyNames(Result);       R.CloseKey;     end;   Finally     FreeAndNil(R);   End; end;    
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-25 09:17:08 IP:210.69.xxx.xxx 未訂閱
現在幾乎沒有人用 Delphi 2, 所以幾乎沒有人能回答此問題 Delphi 2 的錯誤訊息是什麼 ? 貼上來大家看看, 或許還可以幫您推敲一下問題, 但是有什麼不同指令可用, 自己要尋找 (也可能根本沒有替換指令可用) 隨著版本提升, 可用 function 本來就愈來愈多, 舊版沒有相對指令可用很正常
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-25 09:32:45 IP:61.222.xxx.xxx 未訂閱
不透過 TRegistry 單元的物件操作就可以了。 如:
function RegEnum(RootKey: HKEY; Name: String; var ResultList: String; const DoKeys: Boolean): boolean;
var
  i: integer;
  iRes: integer;
  s: String;
  hTemp: HKEY;
  Buf: Pointer;
  BufSize: Cardinal;
begin
  Result := False;
  ResultList := '';
  if RegOpenKeyEx(RootKey, PChar(Name), 0, KEY_READ, hTemp) = ERROR_SUCCESS then
  begin
    Result := True;
    BufSize := 1024;
    GetMem(buf, BufSize);
    i := 0;
    iRes := ERROR_SUCCESS;
    while iRes = ERROR_SUCCESS do
    begin
      BufSize := 1024;
      if DoKeys then
        iRes := RegEnumKeyEx(hTemp, i, buf, BufSize, nil, nil, nil, nil)
      else
        iRes := RegEnumValue(hTemp, i, buf, BufSize, nil, nil, nil, nil);
      if iRes = ERROR_SUCCESS then
      begin
        SetLength(s, BufSize);
        Move(buf^, s[1], BufSize);
        if ResultList = '' then
          ResultList := s
        else
          ResultList := Concat(ResultList, #13#10, s);
        inc(i);
      end;
    end;
    FreeMem(buf);
    RegCloseKey(hTemp);
  end;
end;    function RegEnumValues(RootKey: HKEY; Name: String; var ValueList: String): boolean;
begin
  Result := RegEnum(RootKey, Name, ValueList, False);
end;    function RegEnumKeys(RootKey: HKEY; Name: String; var KeyList: String): boolean;
begin
  Result := RegEnum(RootKey, Name, KeyList, True);
end;
完整源碼為 MiniReg 忘記在哪裡下載的。
系統時間:2024-06-02 0:27:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!