Re: Programmpfad anderer Programme ermitteln
Code:
Benachrichtigung über Debugger-Exception
Im Projekt Project2.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 0045F188 in Modul 'Project2.exe. Lesen von Adresse 0000024' aufgetreten. |
Re: Programmpfad anderer Programme ermitteln
Nochmal den ganzen Code bitte *seufz*
|
Re: Programmpfad anderer Programme ermitteln
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Registry, ComCtrls; type TForm2 = class(TForm) ListView1: TListView; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.FormCreate(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; try try Listview1.Items.BeginUpdate; Listview1.Items.Clear; Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKeyReadOnly(UNINST_PATH) then begin SubKeys := TStringList.Create; try Reg.GetKeyNames(SubKeys); Reg.CloseKey; for i := 0 to subKeys.Count - 1 do if Reg.OpenKeyReadOnly(Format('%s\%s', [UNINST_PATH, SubKeys[i]])) then try sDisplayName := Reg.ReadString('DisplayName'); sUninstallString := Reg.ReadString('UninstallString'); if sDisplayName <> '' then begin Listview1.Items.Add; ListItem.Caption := sDisplayName; ListItem.subitems.Add(sUninstallString); end; finally Reg.CloseKey; end; finally SubKeys.Free; end; end; finally ListView1.AlphaSort; Listview1.Items.EndUpdate; end; finally Reg.CloseKey; Reg.Free; end; end; end. |
Re: Programmpfad anderer Programme ermitteln
Jag das Programm mal durch den Debugger.
|
Re: Programmpfad anderer Programme ermitteln
Zitat:
|
Re: Programmpfad anderer Programme ermitteln
Was willst du uns mit dem Selbstzitat sagen? Step doch mal durch und sag uns dann nach welcher Zeile der Fehler auftritt.
|
Re: Programmpfad anderer Programme ermitteln
Setzte eine Breakpoint und führe das Programm Schritt-für-Schritt aus, dann siehst du in welcher Zeile der Fehler auftritt
|
Re: Programmpfad anderer Programme ermitteln
Delphi-Quellcode:
Hier muss der Fehler liegen...
Listview1.Items.Add;
ListItem.Caption := sDisplayName; ListItem.subitems.Add(sUninstallString); |
Re: Programmpfad anderer Programme ermitteln
Delphi-Quellcode:
ListItem := Listview1.Items.Add;
|
Re: Programmpfad anderer Programme ermitteln
Danke, hat geklappt!
So, und wo muss ich nun InstallLocation und, um beim Beispiel zu bleiben, "Mozilla Firefox" eingeben? Hätte gedacht, hier
Delphi-Quellcode:
, aber dann findet er nichts. :?:
sDisplayName := Reg.ReadString('DisplayName');
sUninstallString := Reg.ReadString('UninstallString'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 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