AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Grösse in Bytes eines Keys der registry bekommen
Thema durchsuchen
Ansicht
Themen-Optionen

Grösse in Bytes eines Keys der registry bekommen

Ein Thema von Pseudemys Nelsoni · begonnen am 2. Feb 2005 · letzter Beitrag vom 2. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 14:18
hi,

Delphi-Quellcode:
var
  Key: HKEY;
  phkResult: HKEY;
  uType: DWORD;
  uPathSize: DWORD;

begin
  Key := HKEY_LOCAL_MACHINE;
  if RegOpenKeyEx(Key, 'SOFTWARE\Borland\Delphi\7.0', 0, KEY_READ, phkResult) = ERROR_SUCCESS then
  begin
    RegQueryValueEx(Key, 'RootDir', nil, @uType, nil, @uPathSize);
    Showmessage(inttostr(uPathSize));
  end;
end.
showmessage zeigt mir immer 0 an, der key "RootKey" existiert aber...wieso bekomme ich nicht die richtige länge des strings angezeigt?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 14:50
Setz mal uType vorher auf 0 um anzuzeigen das du jeden Registry-Typen akzeptierst.
Ansonsten sieht es gut aus.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 14:59
moin robert, auch das klappt nicht ... siehe screenshoot im anhang. Damits mir auch glaubt *g*
Miniaturansicht angehängter Grafiken
0_754.jpg  
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 15:16
Erstens mal mit REG_SZ probieren und dann pruefen ob auch die richtige Funktion aufgerufen wird.
Bei Rechtsklick in der IDE und "Deklaration" sollte man in Windows.pas landen.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 15:20
Wie meinst du das mit prüfen ob es die richtige funktion ist? RegQueryValueEx müsste doch stimmen oder?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 16:02
Es kann immer mal sein das je nach Uses-Liste eine falsche Funktion gelinkt wird.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 16:26
scheint aber richtig zu sein, ich komme in die windows.pas an zeile "function RegQueryValueEx; external advapi32 name 'RegQueryValueExA';"

hm...das problem ist jetzt nur....wo liegt der fehler dann? wie gesagt der pfad muss stimmen...tut er ja auch, sonst würde das showmessage gar nicht ausgeführt werden und der Key "RootDir" existiert auch...den hat ja jeder der delphi 7 hat...hmmm
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 18:08
Moin Mario,

warum verlässt Du Dich drauf, dass RegQueryValueEx nicht fehlschlägt?
Prüf' das mal lieber:

Delphi-Quellcode:
if RegQueryValueEx(....) <> ERROR_SUCCESS then begin
  ShowMessage(SysErrorMessage(GetLastError));
end else begin
  ShowMessage(....);
end;
Ausserdem fehlen try/finally und RegCloseKey
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 20:50
moin christian,

danke für deine antwort. ich bekomme den fehler zurückgegeben beim showmessage: "Der angegebene Ressourcentyp wurde nicht in der Image-datei gefunden"

was heisst das denn? welche image datei
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#10

Re: Grösse in Bytes eines Keys der registry bekommen

  Alt 2. Feb 2005, 21:57
Delphi-Quellcode:
const
  S_KEYNAME = 'SOFTWARE\Borland\Delphi\7.0';
  S_VALUENAME = 'RootDir';
var
  CurrentKey: HKEY;
  Path: String;
  Size: DWORD;
begin

  if RegOpenKeyEx(HKEY_LOCAL_MACHINE, S_KEYNAME, 0, KEY_READ, CurrentKey) = ERROR_SUCCESS then
  begin
    SetLength(Path, MAX_PATH);
    Size := Length(Path);
    if RegQueryValueEx(CurrentKey, S_VALUENAME, nil, nil, PByte(PChar(Path)), @Size) = ERROR_SUCCESS then
    begin
      SetLength(Path, Size);
      ShowMessage(Path);
    end;
    RegCloseKey(CurrentKey);
  end;

end;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:09 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