Hi,
ich vrsuch den Programpfad von Firefox so zu ermittel:
Delphi-Quellcode:
procedure TFormMain.Button2Click(Sender: TObject);
const
UNINST_PATH = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
var
Reg: TRegistry;
SubKeys: TStringList;
i: integer;
sDisplayName, sUninstallString: string;
begin
Reg := TRegistry.Create;
with Reg do
try
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 := Reg.ReadString('Comments');
sUninstallString := Reg.ReadString('InstallLocation');
if sDisplayName <> '' then
begin
if sDisplayName = 'Mozilla Firefox' then
begin
showmessage(sUninstallString+'\'+sDisplayName);
end;
end;
finally
Reg.CloseKey;
end;
finally
SubKeys.Free;
end;
end;
finally
CloseKey;
Free;
end;
end;
abgeleitet von hier:
hier
Bekomm allerdings eine Fehlermeldung:
access violation at 0x77cd4eec: write of address 0x00030ffc
Fehler tritt nur auf bei
showmessage(sUninstallString+'\'+sDisplayName);
Wie kann bei "Shomessage" denn eine
access auftreten?