5

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

谢谢

4

3 回答 3

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;
于 2014-07-15T06:01:20.410 回答
2

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

您可以直接使用 WinAPI 调用来执行此操作,但您可能会发现使用您选择的语言编写代码以将端口测试到 DLL 更容易(前提是它当然可以创建本机 DLL),然后调用它从 Inno 内部

于 2012-10-12T07:27:18.090 回答
1

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

于 2012-10-15T15:36:43.143 回答