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