2

inno セットアップで次の機能を作成しようとしています。

ユーザーは、アプリケーションが通信するポートを入力するよう求められます。ポートに入ると、チェックボタンを押すことができます。このチェック ボタンは、インストール マシンのポートが使用可能かどうかを確認するコードを実行します。

これまでのところ、ユーザーがテストしたいポートを入力するための入力ボックスを作成することに問題はありません。ポートが使用可能かどうかをテストする次のコードがあります。

int port = 456; //<--- This is your value
bool isAvailable = true;

// Evaluate current system tcp connections. This is the same information provided
// by the netstat command line application, just in .Net strongly-typed object
// form.  We will look through the list, and if our port we would like to use
// in our TcpClient is occupied, we will set isAvailable to false.
IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();

foreach (TcpConnectionInformation tcpi in tcpConnInfoArray)
{
    if (tcpi.LocalEndPoint.Port == port)
    {
        isAvailable = false;
        break;
    }
}

Console.WriteLine("Port is available");

私の最初の質問は、ポート テスト コードから true または false の値を inno setup に返すことは可能ですか? false の場合は、ユーザーに知らせる必要があります。

2 番目の質問は、ポート テスト コードは正しいですか?

3 番目の質問は、ファイアウォールでそのポートを開く必要がある可能性があると考えるのは正しいですか。

4

0 に答える 0