Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   kann registry eintrag nicht anzeigen (https://www.delphipraxis.net/87028-kann-registry-eintrag-nicht-anzeigen.html)

Gehstock 22. Feb 2007 13:06


kann registry eintrag nicht anzeigen
 
Delphi-Quellcode:
var
Upd:string;

Delphi-Quellcode:
If upd= '1' then Checkbox1.Checked :=true;
Checkbox1.Caption:=upd;//nur zum test

Delphi-Quellcode:
function GetCPUUpdate;
var
  Reg: TRegistry;
  begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Hardware\Description\System\CentralProcessor\0',
False) then
    upd:=String(Reg.ReadString('Update Status'));
  finally
    Reg.Free;
  end;
end;
programm soll praktisch anzeigen ob die CPU upgrade fähig ist

zeigt aber nix an

sollte daran liegen das der eintrag ein Dword ist
aber wie kann ich das anzeigen

SnuffMaster23 22. Feb 2007 13:11

Re: kann registry eintrag nicht anzeigen
 
Wenn du ein DWORD auslesen willst, wieso benutzt du dann Reg.ReadString?
Probier mal ReadInteger ;)

Gehstock 22. Feb 2007 13:14

Re: kann registry eintrag nicht anzeigen
 
ja klappt jetzt aber er liest den wert falsch


laut registry steht bei mit ne 1 für upgradefähig

programm liest aber 0


Delphi-Quellcode:
Upd:integer;
Delphi-Quellcode:
function GetCPUUpdate;
var
  Reg: TRegistry;
  begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Hardware\Description\System\CentralProcessor\0',
False) then
    upd:=(Reg.ReadInteger('Update Status'));
  finally
    Reg.Free;
  end;
end;
Delphi-Quellcode:
If upd= 1 then Checkbox1.Checked :=true;
Checkbox1.Caption:=inttostr(upd);

DP-Maintenance 22. Feb 2007 13:35

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.

Gehstock 25. Feb 2007 20:16

Re: kann registry eintrag nicht anzeigen
 
Push

Komm da wirklich net weiter

Delphi-Quellcode:
function GetCPUUpdate:string;
var
  Reg: TRegistry;
  begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Hardware\Description\System\CentralProcessor\0',
False) then
    upd:=(Reg.ReadInteger('Update Status'));
  finally
    Reg.Free;
  end;
end;
Delphi-Quellcode:
upd:Integer;
Delphi-Quellcode:
If upd= 1 then Checkbox1.Checked :=true;
Checkbox1.Caption:=inttostr(upd);//zum test
hat jemand vieleicht ne idee

Christian Seehase 25. Feb 2007 23:09

Re: kann registry eintrag nicht anzeigen
 
Moin Gehstock,

mir ist nicht ganz klar, was da nicht klappt.
Wenn ich Deinen Code per Copy&Paste übernehme, erhalte ich den korrekten Wert.
Es könnte eigentlich nur noch sein, dass Dein globale Variable upd irgendwo überschrieben wird.

BTW:
Warum schreibst Du eigentlich eine Funktion mit String als Rückgabewert, wenn Du dann einen Integer brauchst?

bitsetter 25. Feb 2007 23:21

Re: kann registry eintrag nicht anzeigen
 
Moin,

wozu schreibst du eine Funktion, wenn du Result gar keinen Wert zuweisen tust?
Versuche mal folgenden Code:
Delphi-Quellcode:
function GetCPUUpdate: integer;
var
  Reg: TRegistry;
begin
  Result:= 0;
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Hardware\Description\System\CentralProcessor\0',
False) then
    result:= Reg.ReadInteger('Update Status');
  finally
    Reg.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  If GetCPUUpdate= 1 then
    Checkbox1.Checked :=true
  else
  Checkbox1.Checked :=false
end;
Bei mir ist Result übrigens gleich 2.

Hawkeye219 25. Feb 2007 23:23

Re: kann registry eintrag nicht anzeigen
 
Hallo,

arbeitest du an deinem Rechner mit eingeschränkten Rechten? In diesem Fall solltest du es einmal mit

Delphi-Quellcode:
Reg.OpenKeyReadOnly()
versuchen.

Gruß Hawkeye

Gehstock 26. Feb 2007 21:42

Re: kann registry eintrag nicht anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Laut Registry 00000001 also 1
Ausgabe und Source siehe Bild

bleibt alles beim alten

Edit: also richtig checken tut er jetzt bei mir aber die Caption (o statt 1 ) klappt net

bitsetter 26. Feb 2007 21:51

Re: kann registry eintrag nicht anzeigen
 
Delphi-Quellcode:
CheckBox1.Caption:= inttostr(GetCPUUpdate);
EDIT: oder so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  upd:= GetCPUUpdate;
  If upd= 1 then
    Checkbox1.Checked :=true
  else
  Checkbox1.Checked :=false

  CheckBox1.Caption:= inttostr(upd);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz