AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry: String auslesen?

Ein Thema von Pseudemys Nelsoni · begonnen am 27. Feb 2004 · letzter Beitrag vom 27. Feb 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#11

Re: Registry: String auslesen?

  Alt 27. Feb 2004, 14:28
hoi luckie.

ist dies der richtige part?:

Delphi-Quellcode:
function Reg_ReadString(const RootKey: HKEY; const RegVal: string): string;
var
  lpType,
  cbData : DWORD;
begin
  Result := '';

  // no assigned key
  if(RootKey = 0) then exit;

  // "ValueExists"?
  lpType := REG_NONE;
  cbData := 0;

  if(RegQueryValueEx(RootKey,@RegVal[1],nil,@lpType,nil,@cbData) =
       ERROR_SUCCESS) and
    (lpType in[REG_SZ,REG_EXPAND_SZ]) and
    (cbData > 0) then
  begin
    SetLength(Result,cbData);
    if(RegQueryValueEx(RootKey,@RegVal[1],nil,nil,
      @Result[1],@cbData) = ERROR_SUCCESS) then SetLength(Result,cbData-1)
    else Result := '';
  end;
end;
wenn ja...

kann ich statt @lpType nicht direkt "REG_NONE" eingeben?
und ich weiss auch nicht welcher der variablen dort den zu suchenden key enthält, bzw den zulesenden.
Ich sehe nur Rootkey und den pfad.
Mario
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#12

Re: Registry: String auslesen?

  Alt 27. Feb 2004, 15:49
Du siehst das Prinzip etwas falsch. Es ist nicht wie bei TRegistry, wo du in "OpenKey" den kompletten Pfad angibst, usw. Hier öffnest du den Schlüssel zunächst mit "RegOpenKeyEx"
Delphi-Quellcode:
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,'Software\Microsoft\...usw.',0,
  KEY_READ,rgHandle) = ERROR_SUCCESS) then
try
und erhältst dann im letzten Parameter dieser Funktionen eine HKEY-Variable, die quasi den offenen Schlüssel identifiziert. Damit kannst du dann einen String auslesen, bspw. mit der von dir zitierten Funktion:
Delphi-Quellcode:
  s := Reg_ReadString(rgHandle, // <-- der offene Schlüssel
    'DeinWert');

  MessageBox(0,pchar(s),nil,0);
und dann machst du die Sache wieder zu.
Delphi-Quellcode:
finally
  RegCloseKey(rgHandle);
end;
Zitat:
kann ich statt @lpType nicht direkt "REG_NONE" eingeben?
Probier´s doch aus. IMHO ist das aber eine VAR-Deklaration und funktioniert deshalb nicht. Zumal das Ergebnis (sprich: der Typ des Schlüssels) ja auch noch geprüft wird:
Zitat:
    (lpType in[REG_SZ,REG_EXPAND_SZ]) and
Bitte, bitte: lies das Tutorial und verwende nicht einfach (ohne Sinn und Verstand) Codezeilen. Gerade bei der Registry kann ein Fehler fatal sein!
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#13

Re: Registry: String auslesen?

  Alt 27. Feb 2004, 16:41
ok, danke für die erkärung

btw: glückwunsch zum 1234 beitrag ^^
Mario
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz