如何检查如果一个端口是使用Inno Setup的安装过程中可用?(How to check if a

2019-09-24 00:04发布

我想创建一个安装文件,这样在安装过程将检查口,说9000,并让用户了解该端口状态。 我是新来的Inno Setup的和不知道这是可能的,我怎么会检查这个?

谢谢

Answer 1:

你可以用我的功能来检查端口可用

见:

  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;


Answer 2:

看到如果一个端口是唯一可用的真正的方法是尝试连接或听着它(取决于你检查什么样的可用性)。

为此,您可以用WinAPI的直接调用,但您可能会发现更容易编写代码来测试该端口进入使用您所选择的语言(前提是它可以创建,当然本机DLL)一个DLL,然后调用这个从内部创新科技 。



Answer 3:

对于Windows 2000的,XP版本,你可以使用telnet命令,如果赢7,Vista中,telnet不是默认开启的,用户需要从控制面板启用后,也可以使用pkgmgr /iu:"TelnetClient" ,使之通命令行。 从INNO您可以检查Windows版本和相应的运行命令。



文章来源: How to check if a port is available during installation using Inno Setup?