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