我正在尝试创建一个安装文件,以便在安装过程中它会检查一个端口,比如 9000,并让用户知道端口状态。我是 Inno Setup 的新手,想知道这是否可行,我该如何检查?
谢谢
我正在尝试创建一个安装文件,以便在安装过程中它会检查一个端口,比如 9000,并让用户知道端口状态。我是 Inno Setup 的新手,想知道这是否可行,我该如何检查?
谢谢
您可以使用我的功能检查端口是否可用
看 :
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;
查看端口是否可用的唯一真正方法是尝试连接或侦听它(取决于您正在检查的可用性类型)。
您可以直接使用 WinAPI 调用来执行此操作,但您可能会发现使用您选择的语言编写代码以将端口测试到 DLL 更容易(前提是它当然可以创建本机 DLL),然后调用它从 Inno 内部。
对于windows 2000, xp 版本可以使用telnet 命令,如果win 7, vista 默认不启用telnet,需要用户从控制面板启用,也可以pkgmgr /iu:"TelnetClient"
通过命令行启用。从 inno 您可以检查 Windows 版本并相应地运行命令。