Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Kako citati podatke iz Registry baze (ne pomocu Registry unit-a) ?

  • 6 odgovora
  • 4.147 pregleda

Najnovija ↓

Kako citati podatke iz Registry baze (ne pomocu Registry unit-a) ? 30.08.2004. u 14:08 · pre 269 meseci #1
Poludecu, ne znam zasto mi sledeci kod ne radi :

Code:

var
  hndKey : HKEY;
  mPath  : String;
  mSize  : DWORD;
begin
  If RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                  'SOFTWARE\Microsoft\Windows\CurrentVersion'),
                  0,
                  KEY_QUERY_VALUE,
                  hndKey) = ERROR_SUCCESS Then
    Try
      mSize := SizeOf(mPath);
      RegQueryValueEx(hndKey, 'MediaPath', nil, nil, PByte(mPath), @mSize);
    Finally
      RegCloseKey(hndKey);
    End;


I kad na kraju udarim ShowMessage(mPath), vidim da je mPath prazan...
Re: Kako citati podatke iz Registry baze (ne pomocu Registry unit-a) ? 31.08.2004. u 13:39 · pre 269 meseci #2
"RegQueryValueEx(hndKey, 'MediaPath', nil, nil, PByte(mPath), @mSize);"
Zameniti gore navadenu liniju koda sa:

RegQueryValueEx(hndKey, 'MediaPath', nil, @TipPodatka, PByte(mPath), @mSize);
gde je
var
TipPodatka: integer;
begin
...
TipPodatka := reg_sz;

Samo nagadjam, nemam ovde mogucnost da proverim ovo....

Re: Kako citati podatke iz Registry baze (ne pomocu Registry unit-a) ? 01.09.2004. u 12:15 · pre 269 meseci #4
Pogresio si u mSize := SizeOf(mPath);
U tom trenutku tu nemas dobre podatke. Pogledaj ispravljenu verziju.
Code:

var
  hndKey : HKEY;
  mPath  : string;
  mSize  : DWORD;
begin
  if RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                  'SOFTWARE\Microsoft\Windows\CurrentVersion',
                  0,
                  KEY_QUERY_VALUE,
                  hndKey) = ERROR_SUCCESS then
  try
    mSize := 0;
    if RegQueryValueEx(hndKey, 'MediaPath', nil, nil, nil, @mSize) = ERROR_SUCCESS then begin
      mPath := StringOfChar(' ',mSize);
      RegQueryValueEx(hndKey, 'MediaPath', nil, nil, PByte(mPath), @mSize);
    end;;
  finally
    RegCloseKey(hndKey);
  end;
end;
Re: Kako citati podatke iz Registry baze (ne pomocu Registry unit-a) ? 01.09.2004. u 16:26 · pre 269 meseci #5
I to sam probao, da pre citanja iscitam duzinu zapisanog string-a, opet nece (ali duzinu iscita pravilno, recimo ako je string dugacak 20 karaktera, mSize dobije vrednost 20)...
Kad postavim breakpoint-e na kod, vidim da se sve naredbe izvrse, ali ipak na kraju vraca prazan string..
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme