1

私は ac# .Net3.5 アプリケーションを開発しています。

アプリケーションは、WinVerifyTrustを使用してファイルの署名をチェックします。問題は、分離されたネットワーク (つまり、インターネット アクセスがないが、マシンにはまだ IP アドレスがある) では、WinVerifyTrust が戻るまでに非常に長い時間 (~20 秒) かかることです。

この状況を特定する方法はありますか?

4

2 に答える 2

2

Windows API-を使ってみましたか?

using System;
using System.Runtime;
using System.Runtime.InteropServices;

    public class InternetCS
    {
        //Creating the extern function...
        [DllImport("wininet.dll")]
        private extern static bool InternetGetConnectedState( out int Description, int ReservedValue );

        //Creating a function that uses the API function...
        public static bool IsConnectedToInternet( )
        {
            int Desc ;
            return InternetGetConnectedState( out Desc, 0 ) ;
        }
    }
于 2012-10-24T07:12:46.100 に答える
1

また、コンピューターが低速のインターネット接続に接続されているかどうかをどのように区別しますか?

とにかく、あなたはそれが利用可能であるかどうか見るためにグーグル(例えば)にpingすることができます。コンピューターが分離されていない場合は、使用可能になります。

C#からpingを実行するには、System.Net.NetworkInformation.Pingを使用するだけです。

編集:プロキシの背後にいることをサポートする必要がある場合は、Googleポート80を介してTcpConnectionを開き、できるかできないかを確認する必要があります。グーグルの80へのポートを開くことができない場合は、WinVerifyTrustにも接続できません。

于 2012-10-24T07:08:30.590 に答える