Avatar billede rrm Nybegynder
26. april 2003 - 23:11 Der er 4 kommentarer og
1 løsning

Brug af RegQueryValueEx funktionen

Jeg skal hente nogle strings fra registry via RegQueryValueEx. Hvordan går jeg det?

Jeg har prøvet med:

function GetProgramFilesPath(): string;
// Return the program files path as define in the registry.
// If the function is unable to find the path, it guess on c:\program files and return this.
var
  handle: hkey;
  Oreturn: integer;
  Path: string;
  lg: PDWORD;
  DataType: integer;

begin

  //Result := 'c:\program files';

  Path := '';
  lg := nil;
  DataType := REG_SZ;
  Oreturn := RegOpenKeyEx(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\', 0, KEY_READ, handle);

  if(Oreturn = ERROR_SUCCESS) then begin
    OReturn := RegQueryValueEx(handle, 'ProgramFilesDir', nil, @DataType, @Path, @lg);


    if(Oreturn = ERROR_SUCCESS) then begin
      SetLength(Path, Integer(lg)-1);
    Result := Path;
    end;

    RegCloseKey(handle);
  end;
end;

RegQueryValueEx(handle, 'ProgramFilesDir', nil, @DataType, @Path, @lg); retunere værdien 234
Avatar billede hermandsen Juniormester
27. april 2003 - 00:01 #1
Kan du ikke bare gøre brug af TRegistry-klassen??
Tilføj Registry under uses...
Avatar billede rrm Nybegynder
27. april 2003 - 00:22 #2
Vil gerne ungå brug af den klasse da jeg prøve at holde størrelsen af filen nede. Den resterende del af programmet er lavet via winapien...
Avatar billede hermandsen Juniormester
27. april 2003 - 00:37 #3
Kan du så ikke grave lidt i sourcefilerne for TRegistry-klassen og finde det kald du skal bruge?? Det plejer jeg at gøre hvis jeg lige skal bruge noget fra Delphi hvor jeg ikke har lyst til at benytte en hel klasse!! :)

Højreklik og tryk "Find decleration". Virker kun hvis du har Professional eller højere. Delphi version er ligegyldig!!
Avatar billede rrm Nybegynder
27. april 2003 - 01:06 #4
Det er det der er problemet, jeg bruger Delphi personal så jeg har ikke den fil :(
Avatar billede rrm Nybegynder
04. maj 2003 - 20:30 #5
Fandt ud af det ved at spørge i nyhedsgruperne.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester