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

Installation 如何使用Inno Setup在安装过程中检查端口是否可用?,installation,inno-setup,Installation,Inno Setup,我正在尝试创建一个安装文件,以便在安装过程中检查端口(比如9000),并让用户知道端口状态。 我是Inno安装新手,不知道这是否可行,我该如何检查 谢谢查看端口是否可用的唯一真正方法是尝试连接或侦听它(取决于您检查的可用性类型) 您可以直接使用WinAPI调用来实现这一点,但您可能会发现使用您选择的语言(当然前提是它可以创建本机DLL)将测试端口的代码编写到DLL中更容易,然后。对于windows 2000、xp版本,您可以使用telnet命令,如果win 7、vista默认情况下未启用teln

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


谢谢

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


您可以直接使用WinAPI调用来实现这一点,但您可能会发现使用您选择的语言(当然前提是它可以创建本机DLL)将测试端口的代码编写到DLL中更容易,然后。

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

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

见:

函数CheckPortOccessed(端口:字符串):布尔值;
变量
结果代码:整数;
开始
Exec(ExpandConstant({cmd}'),'/C netstat-na | findstr'+'/C:“:'+Port+'”,'',0,ewwaitunterminated,ResultCode);
如果结果代码为1,则
开始
日志('此端口('+端口+')已被占用');
结果:=真;
结束其他
开始
结果:=假;
结束;
结束;

是否可以在inno设置中使用pascal检查端口?
  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;