Avatar billede baxos Nybegynder
27. december 2003 - 16:42 Der er 9 kommentarer og
1 løsning

2spm Hvordan finder jeg alt i registry

1.Kan godt finde ud af en enkel streng
1.1Hvordan finder jeg alle strengene i  "Run" i registry
1.2 Hvordan finder jeg ud af ALLE procces der kører? ligsom  CTRL-ALT-DELETE
Avatar billede baxos Nybegynder
27. december 2003 - 16:49 #1
procedure TForm1.Button1Click(Sender: TObject);
var Registry: TRegistry;
begin
Registry := TRegistry.Create;
Registry.RootKey:=HKEY_LOCAL_MACHINE;
If registry.OpenKey('Software/Microsoft/Windows/CurrentVersion/Run',true) then
begin
Edit1.Text :=  Registry.ReadString('Test');
Registry.Free;
end;
end;

Hvorfor kommer der ikke noget tekst i edit1.text :S
Avatar billede moviez Nybegynder
27. december 2003 - 16:51 #2
giv mig lige din email, så sender jeg en .doc fil som jeg fik skrev engang for langtid siden, måske kan du få noget ud af den..
Avatar billede baxos Nybegynder
27. december 2003 - 16:53 #3
bacher_x@hotmail.com
Avatar billede moviez Nybegynder
27. december 2003 - 17:06 #4
Du er tilføjet..Du må gerne give mig et svar...
Avatar billede moviez Nybegynder
27. december 2003 - 17:10 #5
hov, det sku ikke skrives her...jeg sender dig lige den .doc
Avatar billede hrc Mester
28. december 2003 - 14:23 #6
(*
Baxos' OpenKey er kaldt med true, hvilket opretter nøglen hvis den ikke findes; dette er forkert.

Brug OpenKeyReadOnly til opslag. Det er sikkert en indkapsling af OpenKey('',false), men er meget læseligt.

Igen vil jeg promovere lidt for brugen af try-finally blokke. Jeg plejer at lave konstruktionen således:

with TRegistry.Create do
  try
    if OpenKeyReadOnly('Software\...') then
      if ValueExists('test') then
        Edit1.Text := ReadString('test');
  finally
    Free;
  end; // try

... men det er ikke det du spørger efter. Prøv nedenstående og hvis du ikke
har en TValueListEditor komponent så kan du bruge en TStringGrid eller et
TListView
*)

procedure TfrnMain.btnTestClick(Sender: TObject);
var
  i : integer;
  Reg : TRegistry;
  ValueName : string;
  ValueNames : TStringList;
begin
  ValueNames := TStringList.Create;
  Reg := TRegistry.Create;
  try

    vleData.Strings.Clear; // A TValueListEditor component

    if Reg.OpenKeyReadOnly(ePath.Text) then begin
      Reg.GetValueNames(ValueNames);

      for i := 0 to ValueNames.Count - 1 do begin
        ValueName := ValueNames[i];
        case Reg.GetDataType(ValueName) of
          rdUnknown      : vleData.InsertRow(ValueName,'unknown',true);
          rdString      : vleData.InsertRow(ValueName,
                            Reg.ReadString(ValueName),true);
          rdExpandString : vleData.InsertRow(ValueName,'ExpandString',true);
          rdInteger      : vleData.InsertRow(ValueName,
                            IntToStr(Reg.ReadInteger(ValueName)),true);
          rdBinary      : vleData.InsertRow(ValueName,
                            format('Size: %d',
                                    [Reg.GetDataSize(ValueName)]),true);
        end; // case
      end; // for

    end; // if
  finally
    Reg.Free;
    ValueNames.Free;
  end; // try

  // Assigning to the ValueNames.Values[ValueName] afterwards won't
  // work - I've tried.

end;
Avatar billede hrc Mester
28. december 2003 - 14:27 #7
I min Windows er stien til RUN m.v oplysningerne:

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Bemærk også nøglerne RunOnce, RunOnceEx og RunService
Avatar billede baxos Nybegynder
28. december 2003 - 17:22 #8
begge 2 smid et svar..
Avatar billede hrc Mester
29. december 2003 - 14:06 #9
Jamn' det gør jeg så.

Lige en afsluttende kommentar som jeg ikke fik gjort nok opmærksom på. Jeg får listen af value-navne smidt ind i listen. Efterfølgende kan jeg ikke fylde værdierne ind i TStringList'ens value-del. Det havde ellers set pænere ud (måske konverteres syntaksen navn=værdi til en enkelt array hvor de lige pladser er navnene og de ulige værdierne - men det er bare en antagelse)
Avatar billede baxos Nybegynder
29. december 2003 - 23:47 #10
da moviez ikke smed et svar får hrc alle points
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