Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wie lese Ich Hard- und Software aus? (https://www.delphipraxis.net/3565-wie-lese-ich-hard-und-software-aus.html)

Dray 20. Mär 2003 13:03

So mit Diesem Proggi sollte nur noch deine wirkliche Software gescannt werden:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Reg: TRegIniFile;
  List: TStringList;
  I: Integer;
  S: String;
begin
  Memo1.Lines.Clear;
  reg := TRegIniFile.Create;
  List := TStringList.Create;
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    if reg.OpenKey('Software\Microsoft\Windows\Currentversion\Uninstall', FALSE) then begin
      reg.ReadSections(List);
      for I := 0 to List.Count - 1 do begin
        S := Reg.ReadString(List[I], 'DisplayName', '');
        if S <> '' then
          Memo1.Lines.Add(S);
      end;
    end;
  finally
    List.Free;
    reg.Free;
  end;
end;
Ich hoffe bei euch funzt es auch. Ich hatte bisher nur die Möglichkeit das unter Win98 zu Testen.

Wenn Ich jetzt noch die Hardware ausgelesen bekomme dann bin Ich super zufrieden und mein Chef super glücklich!

Luckie 20. Mär 2003 13:12

Diese Zeile:
Delphi-Quellcode:
reg := TRegistry.Create(KEY_READ);
hatte bei mir schon einen tieferen Sinn. :roll:
Delphi-Quellcode:
reg := TRegistry.Create;
Dieser Code öffnet den Schlüssel mit ALL_ACCESS also mit Lese- und Schreibrechten. Unter HKLM auf NT-basierenden Systemen hat aber nicht jeder Schreibrechte in diesem Schlüssel. Bei einem normalen Benutzer dürfte dein Code also keine Ergebnisse liefern. :?

MathiasSimmack 20. Mär 2003 19:38

Zwei Fliegen mit einer Klatsche: So ist es!

1. Die Rechtefrage unter NT wird leider sehr oft vernachlässigt. Was passieren kann, hat Luckie ja erwähnt. Wer dazu noch das try/finally/end vergisst, wird mit einer Fehlermeldung belohnt.

2. Windows orientiert sich auch nur am Vorhandensein eines Displaynamens und zeigt nur dann ein Programm an. Ist eine schöne Methode, bestimmte Programme zu verstecken, damit man sie nicht versehentlich deinstalliert. Das war übrigens die Intention für mein Programm. :)

< ------ >

@Trouble_Maker: Das sind GUIDs von MSI-Installation. Aus dem Grund liest man ja auch den Displaynamen oder den "QuietDisplayname" aus, da er den Namen der Software im Klartext enthält.

Dödel 22. Jul 2003 14:43

Re: Wie lese Ich Hard- und Software aus?
 
Und wie liest man einzelne "Dinge" (weiß et wie ichs ausdrücken soll) aus den Schlüsseln aus? :?:
Da in den Schlüsseln immer der Eintrag 'UninstallString' vorhanden ist, welcher die UnInstall-EXE beinhaltet, möchte ich diesen auch auslesen lassen. :spin:

Dödel

Christian Seehase 22. Jul 2003 14:51

Re: Wie lese Ich Hard- und Software aus?
 
Moin Dödel,

Zitat:

Zitat von Dödel
Da in den Schlüsseln immer der Eintrag 'UninstallString' vorhanden ist

Der ist nicht immer vorhanden.

Zitat:

Zitat von Dödel
Und wie liest man einzelne "Dinge" (weiß et wie ichs ausdrücken soll) aus den Schlüsseln aus?

Weiter oben im Thread ist ein Beispiel für DisplayName. Gehört ja auch zu den einzelnen "Dingen".

Dödel 23. Jul 2003 17:28

Re: Wie lese Ich Hard- und Software aus?
 
THX. Ich sollte mir den Code VORM kopieren mal genauer anschauen *schäm*
:oops:

Dödel


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.
Seite 3 von 3     123   

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