Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Installierte Programme listen (https://www.delphipraxis.net/140400-installierte-programme-listen.html)

RWarnecke 17. Sep 2009 18:30

Re: Installierte Programme listen
 
Zitat:

Zitat von ASoraru
dein SystemInfo funktioniert

Der liest also die richtig Installierten Programme aus ?

Zitat:

Zitat von ASoraru
die Browser ermittelst du auch über das durchsuchen der registry der installed progs ... oder?

Ja, ich ermittel die Browser über die Registry, aber nicht über die Liste die unter Uninstall steht.

ASoraru 17. Sep 2009 18:35

Re: Installierte Programme listen
 
Zitat:

Zitat von RWarnecke
Zitat:

Zitat von ASoraru
dein SystemInfo funktioniert

Der liest also die richtig Installierten Programme aus ?

Zitat:

Zitat von ASoraru
die Browser ermittelst du auch über das durchsuchen der registry der installed progs ... oder?

Ja, ich ermittel die Browser über die Registry, aber nicht über die Liste die unter Uninstall steht.

Ja .... die Programme werden richtig ausgelesen ... ich brauche die sachen um eine liste der installierten browser sowie des defaultbrowser zu erstellen

RWarnecke 17. Sep 2009 19:22

Re: Installierte Programme listen
 
Ich öffne den Registrykey
Zitat:

HKLM\Software\Microsoft\Windows\CurrentVersion\Uni nstall
Dann lese ich mit GetKeyNames die Unterschlüssel in eine StringListe. Danach gehe ich die Stringliste mit einer FOR-Schleife durch und lasse mir dann den Wert von DisplayName anzeigen.

Den Default-Browser bekommst Du aber nicht über den Uninstall-Key.

ASoraru 17. Sep 2009 19:24

Re: Installierte Programme listen
 
Zitat:

Zitat von RWarnecke
Ich öffne den Registrykey
Zitat:

HKLM\Software\Microsoft\Windows\CurrentVersion\Uni nstall
Dann lese ich mit GetKeyNames die Unterschlüssel in eine StringListe. Danach gehe ich die Stringliste mit einer FOR-Schleife durch und lasse mir dann den Wert von DisplayName anzeigen.

Den Default-Browser bekommst Du aber nicht über den Uninstall-Key.

das ist ja das was ich meine .... für den defaultbrowser habe ich schon alles soweit ...

wie machst du das denn nun mit der reg und den installed proggis ? ... mir fehlt nur das korrekte öffnen der reg und der richtige pfad in der reg
rest ist schon soweit fertig

RWarnecke 17. Sep 2009 19:31

Re: Installierte Programme listen
 
Diese Funktion benutze ich :
Delphi-Quellcode:
///////////////////////////////////////////////////////////////////////////////
//
//  Eine Liste der installierten Software zurückgeben
//
function GetUninstallList : string;
const
  cUninstallPath = 'Software\Microsoft\Windows\CurrentVersion\Uninstall';
var
  reg: TRegistry;
  TmpKeyNames: TStringList;
  i: Integer;
  TmpResult: string;
begin
  TmpResult := '';
  Result := TmpResult;
  TmpKeyNames := TStringList.Create;
  TmpKeyNames.Clear;
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  if reg.KeyExists(cUninstallPath) then
    if reg.OpenKeyReadOnly(cUninstallPath) then
      reg.GetKeyNames(TmpKeyNames);
  reg.CloseKey;
  for i := 0 to TmpKeyNames.Count - 1 do
    if reg.OpenKeyReadOnly(cUninstallPath + '\' + TmpKeyNames.Strings[i]) then
    begin
      if reg.ValueExists('DisplayName') then
        TmpResult := TmpResult + reg.ReadString('DisplayName') + CRLF;
      reg.CloseKey;
    end;
  reg.Free;
  TmpKeyNames.Free;
  Result := TmpResult;
end;

ASoraru 17. Sep 2009 19:32

Re: Installierte Programme listen
 
Zitat:

Zitat von RWarnecke
Diese Funktion benutze ich :
Delphi-Quellcode:
///////////////////////////////////////////////////////////////////////////////
//
//  Eine Liste der installierten Software zurückgeben
//
function GetUninstallList : string;
const
  cUninstallPath = 'Software\Microsoft\Windows\CurrentVersion\Uninstall';
var
  reg: TRegistry;
  TmpKeyNames: TStringList;
  i: Integer;
  TmpResult: string;
begin
  TmpResult := '';
  Result := TmpResult;
  TmpKeyNames := TStringList.Create;
  TmpKeyNames.Clear;
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  if reg.KeyExists(cUninstallPath) then
    if reg.OpenKeyReadOnly(cUninstallPath) then
      reg.GetKeyNames(TmpKeyNames);
  reg.CloseKey;
  for i := 0 to TmpKeyNames.Count - 1 do
    if reg.OpenKeyReadOnly(cUninstallPath + '\' + TmpKeyNames.Strings[i]) then
    begin
      if reg.ValueExists('DisplayName') then
        TmpResult := TmpResult + reg.ReadString('DisplayName') + CRLF;
      reg.CloseKey;
    end;
  reg.Free;
  TmpKeyNames.Free;
  Result := TmpResult;
end;

geht das auch unter 64 bit oder nicht ?

RWarnecke 17. Sep 2009 19:33

Re: Installierte Programme listen
 
Das ist die Funktion aus meinem SystemInfo.

ASoraru 17. Sep 2009 19:43

Re: Installierte Programme listen
 
Zitat:

Zitat von RWarnecke
Das ist die Funktion aus meinem SystemInfo.

funktioniert einwandfrei


thank you so much .... thats great ....


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.
Seite 2 von 2     12   

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