2012-10-11 89 views

回答

2

唯一真正的方法,如果一個端口可以是嘗試連接或聽着它(取決於你檢查什麼樣的可用性)。

您可以直接使用WinAPI調用完成此操作,但您可能會發現使用您選擇的語言編寫代碼以將端口測試到DLL中(前提是它可以創建本機DLL),然後call this from within Inno

1

對於Windows 2000的,XP版本,你可以使用telnet命令,如果贏7,Vista中,telnet不是默認開啓的,用戶需要從控制面板啓用後,也可以使用pkgmgr /iu:"TelnetClient",使之直通命令行。從inno你可以檢查Windows版本並相應地運行命令。

+1

雖然Telnet對自動化並不是特別好,但... – Deanna

5

,你可以用我的功能來檢查端口可用

見:

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; 
相關問題