Autor Beitrag
aspnstyle
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 22.03.08 01:45 
Hi leute ich habe eine kleine frage.
Und zwar möchte ich ein programm schreiben das mir ausliest welche programme installiert sind. also das selbe wie im Windows wenn man unter Start/Systemsteuerung/Software geht ...

Meine frage ist jetzt weis jemand von euch wo das hinterlegt ist bzw wie ich mir genau diese info z.b mit PERL(zusäzlichen Modulen) oder Delphi rausholen kann.

Ich hab schon mal in die Regedit geschaut aber da ist das einzigste was ich finde HKEY_LOCAL_MACHINE/Software und das ist auch nicht gerade das wahre

vielen Dank für eure Bemühungen

ps.:ich hoff ich bin in diesem Bereich im Forum richtig wenn nicht entschuldigt das bitte :D


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Sa 22.03.2008 um 00:50
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 22.03.08 02:53 
Guck mal hier: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
busybyte
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 40



BeitragVerfasst: Do 03.04.08 05:05 
Wie das mit den Benutzerrechten aussieht weiss ich nicht,aber als Admin gibts keine Probleme.(bei mir unter XP)
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
uses registry;
procedure TForm1.Button1Click(Sender: TObject);
                    const
                      UNINST_PATH = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
                    var
                      Reg      : TRegistry;
                      SubKeys  : TStringList;
                      ListItem : TlistItem;
                      i        : integer; 
                      sDisplayName, sUninstallString: string
                    begin 
                     { ListView1.ViewStyle := vsReport; 
                      ListView1.Columns.add; 
                      ListView1.Columns.add; 
                      ListView1.Columns[0].caption := 'DisplayName'; 
                      ListView1.Columns[1].caption := 'UninstallString'; 
                      ListView1.Columns[0].Width := 300; 
                      ListView1.Columns[1].Width := 300;}
 
                      Reg := TRegistry.Create; 
                      with Reg do 
                       try
                         with ListView1.items do
                           try 
                             BeginUpdate; 
                             Clear; 
                             RootKey := HKEY_LOCAL_MACHINE; 
                             if OpenKeyReadOnly(UNINST_PATH) then 
                             begin 
                               SubKeys := TStringList.Create; 
                               try 
                                 GetKeyNames(SubKeys); 
                                 CloseKey; 
                                 for i := 0 to subKeys.Count - 1 do 
                                   if OpenKeyReadOnly(Format('%s\%s', [UNINST_PATH, SubKeys[i]])) then 
                                     try 
                                       sDisplayName  := ReadString('DisplayName'); 
                                       sUninstallString := ReadString('UninstallString'); 
                                       if sDisplayName <> '' then 
                                       begin 
                                        ListItem         := add; 
                                        ListItem.Caption := sDisplayName; 
                                        ListItem.subitems.add(sUninstallString); 
                                       end
                                      finally 
                                        CloseKey; 
                                      end
                               finally 
                                 SubKeys.Free; 
                               end
                             end
                           finally 
                            ListView1.AlphaSort; 
                            EndUpdate; 
                           end
                       finally 
                         closekey; 
                         Free; 
                       end
                    end;


Moderiert von user profile iconAXMD: Code- durch Delphi-Tags ersetzt
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 03.04.08 08:54 
user profile iconbusybyte hat folgendes geschrieben:
Wie das mit den Benutzerrechten aussieht weiss ich nicht,aber als Admin gibts keine Probleme.(bei mir unter XP)

So lange nur gelesen werden soll, dürfte es auch unter Vista keine Probleme geben. Problematisch wird es nur, wenn es sich um ein 64-Bit Vista handelt, dann werden die Zugriffe nämlich irgendwie umgebogen!