![]() |
Betriebssystem: Win XP,Win 7
Registry: 2 OpenKeys, nur der 1. funktioniert, warum?
Schönen guten Tag,
ich versuche mit dem unten dargestellten Code, den Virenscanner von Symantec (SAV oder SEP) zu ermitteln. Wir haben nur Windows XP und 7 64bit im Einsatz. Getestet habe ich auf meinem Windows 7 64bit Rechner. Die ersten beiden Keys existieren und ich würde erwarten, dass er in beide Ifs hineingeht. Das 1. If macht er super aber dann ignoriert er alles was danach kommt, obwohl es existiert. Bin mit meinem Latein am Ende.
Delphi-Quellcode:
Danke im Voraus.
function GetSAVParentServer : String;
var av_name, av_parentserver, sResult : String; reg : TRegistry; begin av_name := ''; av_parentserver := ''; Result := ''; reg := TRegistry.Create(KEY_READ); with reg do begin Rootkey:=HKEY_LOCAL_MACHINE; // SEP if OpenKey('SOFTWARE\Symantec\Symantec Endpoint Protection\SMC', False) then begin try if ValueExists('ProductVersion') then if ReadString('ProductVersion') <> '' then av_name := 'SEP'; except av_name := ''; end; CloseKey; end; // SEP : Parent Server if OpenKey('SOFTWARE\Symantec\Symantec Endpoint Protection\SMC\SYLINK\SyLink', False) then begin try av_parentserver := ReadString('LastServerIP'); except av_parentserver := ''; end; CloseKey; end; // SAV if (OpenKey('SOFTWARE\Symantec\InstalledApps', False)) and (av_name = '') then begin try if KeyExists('SAVCE') then if ReadString('SAVCE') <> '' then av_name := 'SAV'; except av_name := ''; end; CloseKey; end; // SAV : Parent Server if OpenKey('SOFTWARE\Intel\LANDesk\VirusProtect6\CurrentVersion', False) then begin try av_parentserver := ReadString('Parent'); except av_parentserver := ''; end; CloseKey; end; end; reg.Free; sResult := ''; if av_name <> '' then sResult := av_name; if sResult <> '' then begin if av_parentserver <> '' then sResult := sResult + ' - ' + av_parentserver; end else sResult := av_parentserver; Result := sResult; end; Sven |
AW: Registry: 2 OpenKeys, nur der 1. funktioniert, warum?
Wie ist es so?
Delphi-Quellcode:
function GetSAVParentServer : String;
var av_name, av_parentserver, sResult : String; reg : TRegistry; begin av_name := ''; av_parentserver := ''; Result := ''; reg := TRegistry.Create(KEY_READ); try reg.Rootkey := HKEY_LOCAL_MACHINE; // SEP if reg.OpenKey('SOFTWARE\Symantec\Symantec Endpoint Protection\SMC', False) then try if reg.ValueExists('ProductVersion') then if reg.ReadString('ProductVersion') <> '' then av_name := 'SEP'; finally reg.CloseKey; end; // SEP : Parent Server if reg.OpenKey('SOFTWARE\Symantec\Symantec Endpoint Protection\SMC\SYLINK\SyLink', False) then try av_parentserver := reg.ReadString('LastServerIP'); finally reg.CloseKey; end; // SAV if reg.OpenKey('SOFTWARE\Symantec\InstalledApps', False) and (av_name = '') then try if reg.KeyExists('SAVCE') then if reg.ReadString('SAVCE') <> '' then av_name := 'SAV'; finally reg.CloseKey; end; // SAV : Parent Server if reg.OpenKey('SOFTWARE\Intel\LANDesk\VirusProtect6\CurrentVersion', False) then try av_parentserver := reg.ReadString('Parent'); finally reg.CloseKey; end; finally reg.Free; end; sResult := ''; if av_name <> '' then sResult := av_name; if sResult <> '' then begin if av_parentserver <> '' then sResult := sResult + ' - ' + av_parentserver; end else sResult := av_parentserver; Result := sResult; end; |
AW: Registry: 2 OpenKeys, nur der 1. funktioniert, warum?
Das brachte keinen Erfolg.
Ich habe es so gelöst.
Delphi-Quellcode:
Kannte das Problem von einer anderen Aufgabenstellung. Mit 64bit Systemen ist etwas komplizierter.
// 32bit oder 64bit Lese Zugriff setzen
if GetOSArchitecture = '32-Bit' then reg := TRegistry.Create(KEY_READ OR KEY_WOW64_32KEY) else reg := TRegistry.Create(KEY_READ OR KEY_WOW64_64KEY); Wenn einer noch eine andere Lösung. Würde Sie mich sehr interessieren. Danke. |
AW: Registry: 2 OpenKeys, nur der 1. funktioniert, warum?
Vielleicht interessant in dem Zusammenhang (auch mal den Links folgen):
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 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