Danke euch für die Hinweise.
Falls es jemanden interessiert
so funktioniert es auch unter WinXP:
Delphi-Quellcode:
function msxml4Exists():boolean;
var
reg :TRegistry;
s:
String;
begin
reg:= TRegistry.Create(KEY_READ);
if (reg<>
nil)
then
begin
with reg
do try
RootKey := HKEY_CLASSES_ROOT;
if (OpenKey('
CLSID\'+ GUIDToString(CLASS_DOMDocument40) +'
\InProcServer32',false))
then
try
s:=ReadString('
');
finally
CloseKey;
end;
finally
Free;
end;
end;
//---Wenn in der Pfadangabe %SystemRoot% vorkommt (bei WinXP)
if pos('
%SystemRoot%',s)>0
then
begin
s:= getSysDir() + ExtractFileName(s);
end;
result:=FileExists(s);
end;
Delphi-Quellcode:
function getSysDir():String;
var
sysdir:String;
begin
SetLength(sysdir,254);
GetSystemDirectory(@sysdir[1],length(sysdir));
//---Da die Zeichenkette nun 255 Zeichen lang ist, existieren NULL Zeichen diese werden in nächter Zeile entfernt
Delete(sysdir,pos(chr(0),sysdir),length(sysdir)-pos(chr(0),sysdir)+1);
result :=SysDir+'\';
end;