![]() |
Programmpfad Firefox
Hi,
ich vrsuch den Programpfad von Firefox so zu ermittel:
Delphi-Quellcode:
abgeleitet von hier:
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; ![]() Bekomm allerdings eine Fehlermeldung: access violation at 0x77cd4eec: write of address 0x00030ffc Fehler tritt nur auf bei
Delphi-Quellcode:
Wie kann bei "Shomessage" denn eine access auftreten?
showmessage(sUninstallString+'\'+sDisplayName);
|
AW: Programmpfad Firefox
Moin,
hast du vielleicht selber eine Methode geschrieben, die showmessage heißt? Weil laut Hilfe dürfte ![]() Vielleicht hilft da dann, die Unit anzugeben, wo er das ShowMessage zu suchen hat:
Delphi-Quellcode:
MfG
Dialogs.ShowMessage('foobar');
Fabian |
AW: Programmpfad Firefox
Es muss etwas in der Richtung wie von xZise beschrieben sein. Hier funktioniert es ohne Probleme. Versuch den Code mal in einem neu angelegten Projekt auszuführen...
|
AW: Programmpfad Firefox
Übrigens, wenn dein Programm unter 64 bit läuft musst du auch woanders gucken. Ich habe es z.B. da gefunden:
Code:
MfG
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox (4.0b2)
Fabian PS: Warum nutzt du eigentlich nicht den With-Block? Abgesehen davon, dass ich ihn da eh raus genommen hätte? |
AW: Programmpfad Firefox
Und auch nur, wenn der Firefox per Installer eingerichtet wurde
|
AW: Programmpfad Firefox
Zitat:
Und vorallem die verwendeten Variablen, denn der Fehler muß nicht unbedingt in der Funktion auftreten, da in der selben Zeile auch noch quasi ein ConcatString versteckt ist. :stupid: Und wenn schon With, warum dann nicht konsequent?
Delphi-Quellcode:
with Reg do
Reg.ReadString('Comments'); Reg.ReadString('InstallLocation'); Reg.CloseKey |
AW: Programmpfad Firefox
Zitat:
Delphi-Quellcode:
OK, zu spät.
Reg.Reg.CloseKey
|
AW: Programmpfad Firefox
Ich wollte nicht eigentlich groß über den with-Block argumentieren und habe deshalb nur kurz gesagt, er solle ihn doch aber eher besser rausnehmen.
@ himitsu: Und wo kann bei einem Concat von zwei Strings eine AV auftreten? @ Threadersteller: Ich würde dir vorschlagen, ob man nicht eventuell anders an den Pfad von Firefox kommt. @ mkinzler: Bei der portablen Version würde es nicht so viel sinn ergeben, den Programmpfad zu suchen, weil der könnte in 0,nix ungültig werden. MfG Fabian |
AW: Programmpfad Firefox
@xZise: defekte Strings?
|
AW: Programmpfad Firefox
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 Uhr. |
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-2025 by Thomas Breitkreuz