AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Alle Einträge der Registry z. B. Autostart auslesen.
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Einträge der Registry z. B. Autostart auslesen.

Offene Frage von "Go2EITS"
Ein Thema von Go2EITS · begonnen am 30. Jun 2006 · letzter Beitrag vom 30. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#1

Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 05:36
Hallo, DP

ich bräuchte eine Lösung, um in der Registry z.B. alle Programme aus der

HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Run

in ein openarray einzulesen.

Hat da jemand Codeschnipsel für die DP und mich?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 05:42
Schau dir mal die Klasse TRegistry an.
Markus Kinzler
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#3

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 06:04
@mkinzler
Danke für die Antwort. Meine Frage bezieht sich aber auf a l l e Einträge eines
Schlüssels á la

//Pseudocode!
Count:=CountSchlüssel('HKEY_LOCAL_MACHINE\Software \Microsoft\Windows\CurrentVersion\ Run');

for i=1 to Count do
begin
// Lese in openarray ein...
end;

Lösungen für einen Schlüssel gibt es massenweise.
Es können ja. z. B. mehrere Services, RunOnce, Run etc.vorhanden sein.
Einen Count(Schlüssel) o.ä. konnte ich in der TRegistry nicht finden.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 06:08
Z.B. Mit Reg.GetValueNames(StringList); oder für alle Werte Reg.GetKeyValues(StringList);

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#5

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 06:28
@Florian Bernd
Danke, Florian.
Mit der Delhihilfe habe ich sogar ein Beispiel gefunden.
Das versuche ich mal umzusetzen.

  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#6

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 08:15
So, ich habe es!
Zwar nicht in ein OpenArray sondern in eine TStringlist, das ist sogar besser (Siehe Code unter Debug)
Ich bekomme, wenn ich die Zeile Val.free einsetze, (mit Try oder ohne Try...finally..end) eine EAccessviolation Meldung.
-> Was mache ich falsch?

Ganz unten das Beispiel aus der DelphiHilfe, da funktioniert es.
Hier mein Code/meine Lösung:

Nachtrag: Gelöst dank Björn, siehe Code hier:

Delphi-Quellcode:
...uses Registry

//Meine Lösung...
function CountKey(Rootkey:HKEY;Key:String):Integer;
VAR Reg: TRegistry;
    Val: TStringList;
      i: Integer;
begin
// INIT
Result:=0;
Reg:=TRegistry.Create;
//INITEND

//Hauptteil:
try
Val:=TStringList.Create;
reg.RootKey:=Rootkey;
if not Reg.OpenKey(Key,False)
   then ShowMessage('Error opening key')
   else
   begin Reg.GetValueNames(Val);

//ONLY FOR DEBUG Zur INFO: (* einfach durch //(* ersetzen und sehen was passiert!
(*
for I:=0 to Val.Count-1 do
    begin ShowMessage(Key+ Chr(13) +'hat einen Eitrag'+Val.Strings[I]+Chr(13)+
          'mit '+Reg.ReadString(Val.Strings[I]));
    end;//ENDFOR
*)

//DEBUGEND

    end;//ELSE
// EDIT Das ist der alte Code der nicht funtionierte
(*
finally
//Hier gibt es ein Error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Val.free;
end;
Reg.free;

//Hier das Ergebnis der Suche
Result:=Val.Count;
// Alter Code ENDE
*)


// EDIT So ist es richtig!
Result:=Val.Count;
finally
Val.free;
end;
Reg.free;
end;


//Aufruf mit...
procedure TForm1.Button1Click(Sender: TObject);
var RootKey:HKEY;
    key:String;
begin
RootKey:=HKEY_LOCAL_MACHINE;
key:='\Software\Microsoft\Windows\CurrentVersion\Run';
showmessage(inttostr(countkey(RootKey,key)));
end;
::::: Hier das Beispiel aus der Delphi Hilfe...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Reg: TRegistry;
  Val:TStringList;
  I:Integer;
begin
  Reg:=TRegistry.Create;
  try
    Val:=TStringList.Create;
    try
      Reg.RootKey:=HKEY_LOCAL_MACHINE; // Abschnitt in Registrierung
      if not Reg.OpenKey(Edit1.Text,False) then
        ShowMessage('Error opening key')
      else
      begin
        Reg.GetValueNames(Val);
        for I:=0 to Val.Count-1 do

        begin
          ShowMessage(Edit1.Text + Chr(13) +
                      'has an Entry Called '+Val.Strings[I]+Chr(13)+
                      'With a Value of '+Reg.ReadString(Val.Strings[I]));
        end;
        if MessageDlg('Ok to delete the key and lose all these values?'
                     ,Mtinformation,[mbYes,mbNo],0)=mryes then
           Reg.DeleteKey(Edit1.Text);
      end;
    finally
      Val.Free;

    end;
  finally
    Reg.Free;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#7

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 08:26
Delphi-Quellcode:
//Hier gibt es ein Error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Val.free;
end;
Reg.free;

//Hier das Ergebnis der Suche
Result:=Val.Count;
Von einen freigegeben objekte kanst du nichts verlangen
Delphi-Quellcode:
//Hier gibt es ein Error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Result:=Val.Count;
Val.free;
end;
Reg.free;

//Hier das Ergebnis der Suche
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#8

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 08:33
@Björn
"Vor dem Kopfschlag"
Logisch! Vielen Dank.

@Alle
Danke für die schnellen Antworten.
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#9

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 10:58
Ich glaube es gehört noch in diesen Thread:

Die Lösung mit GetValueNames klappt bei 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servi ces' leider nicht.
Als Eintrag wird leider 0 wiedergegeben.

Der Aufruf eines Keys mit einem unter Services versehenen Unterordner bzw. Dienstes/Treiber zeigt
die entsprechende Anzahl und Einträge korrekt an. Auch 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Cur rentVersion\Run' wird ohne Probleme angezeigt.

Vielleicht hat ja jemand eine Lösung zur Ergänzung, wie ich die Einträge unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es doch zählen und listen kann.

Ich möchte die Einträge auf Änderungen überwachen können.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: Alle Einträge der Registry z. B. Autostart auslesen.

  Alt 30. Jun 2006, 13:01
Für die Service such mal nach Hier im Forum suchenEnumServices.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  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 14:22 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