我正在寻找一种方法来确定用户是否已安装了IIS版本。如果他没有,我将继续运行我的IIS安装脚本。
我知道我所做的异常处理条款:
try
IIS := CreateOleObject('IISNamespace');
except
RaiseException(ExceptionType, ‘IIS not installed. Setup will now install IIS on your machine. ’#13#13'(Error ‘’’+ExceptionParam+’’’ occured)’);
end;
但出于某种原因,我的编译器版本似乎没有识别出RaiseException。我也试过包括
uses
SysUtils;
但编译器甚至无法识别SysUtils。是否有类似注册表项的内容,我可以查看以确定是否已安装IIS? 任何帮助将非常感激。
答案 0 :(得分:4)
Rishi你正在使用带有2个参数的RaiseException
函数,但是这个函数只支持一个。
procedure RaiseException(const Msg: String);
尝试使用此功能
var
IIS : variant;
begin
try
IIS := CreateOleObject('IISNamespace');
except
RaiseException('IIS not installed. Setup will now install IIS on your machine');
end;
end;
答案 1 :(得分:2)
IIS始终安装到%windir%\ system32 \ inetsrv,因此您应检查此目录下是否存在特定文件。例如,IIS 6/7的此文件夹中应存在w3wp.exe。
答案 2 :(得分:2)
尝试:
[CustomMessages]
iis_title=Internet Information Services (IIS)
[Code]
function iis(): boolean;
begin
if not RegKeyExists(HKLM, 'SYSTEM\CurrentControlSet\Services\W3SVC\Security') then
MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [CustomMessage('iis_title')]), mbError, MB_OK)
else
Result := true;
end