如何使用Inno Setup在安装过程中检查端口是否可用?

时间:2012-10-11 17:13:05

标签: installation inno-setup

我正在尝试创建一个安装文件,这样在安装过程中它会检查一个端口,例如9000,并让用户知道端口状态。 我是Inno Setup的新手并且想知道这是否可行,我将如何检查?

谢谢

3 个答案:

答案 0 :(得分:6)

您可以使用我的功能检查端口是否可用

见:

  function CheckPortOccupied(Port:String):Boolean;
  var
    ResultCode: Integer;
  begin
   Exec(ExpandConstant('{cmd}'), '/C netstat -na | findstr'+' /C:":'+Port+' "', '',0,ewWaitUntilTerminated, ResultCode);
    if ResultCode  <> 1 then 
    begin
      Log('this port('+Port+') is occupied');
      Result := True; 
    end else
    begin
      Result := False;
    end;
  end;

答案 1 :(得分:2)

查看端口是否可用的唯一真正方法是尝试连接或收听它(取决于您要检查的可用性类型)。

您可以直接使用WinAPI调用执行此操作,但您可能会发现使用您选择的语言编写代码以将端口测试到DLL更容易(假设它当然可以创建本机DLL),并且然后call this from within Inno

答案 2 :(得分:1)

对于Windows 2000,xp版本可以使用telnet命令,如果win 7,vista,默认情况下未启用telnet,用户需要从控制面板启用它,或者您可以使用pkgmgr /iu:"TelnetClient"启用它通过命令行。从inno您可以检查Windows版本并相应地运行命令。