RASDIAL または RASPHONE exe を使用して DialUp 接続を作成しました。アプリケーションで確立された接続を監視し、接続が切断された場合はアプリケーションを終了する必要があります。これをプログラムで管理する方法は?私に提案してください..
3 に答える
RAS 接続および切断に関するイベント ベースの通知を受信するための正しい Win32 API は、RasConnectionNotification です。
リンクは次のとおりです: http://msdn.microsoft.com/en-us/library/aa376726(VS.85).aspx
CodePlex で DotRas SDK を使用している場合、RasConnectionWatcher は上記の API を使用してこれらの通知を処理します。
using DotRas;
RasConnectionWatcher watcher = new RasConnectionWatcher();
watcher.Connected += (sender, e) =>
{
// Connected!
};
watcher.Disconnected += (sender, e) =>
{
// Disconnected!
};
また、Handle プロパティを設定することにより、RasDial から返されたハンドルを指定して、そのハンドルに固有のイベントを受け取ることもできます。
watcher.Handle = handle;
watcher.EnableRaisingEvents = true;
興味がある場合は、DotRas へのリンクを次に示します: http://dotras.codeplex.com
編集: DotRas API または Win32 API のいずれかにハンドルを指定しない場合、マシンで追加/削除されたすべての接続、切断、および帯域幅からイベントを受け取ることを追加したかっただけです。
スレッドを使用して、接続のステータスを定期的に確認することをお勧めします。
これは、rasapi32.dll の RasEnumConnections を使用して行うことができます。この呼び出しは、アクティブな接続のリストを返します。これを反復して、開いた接続がその中にあるかどうかを確認できます。
lpvNotifier
関数のを使用すると、接続の有効期間に関する通知イベントを受け取るRadDial
を渡すことができます。RasDialFunc1
(RasGetConnectStatus
はポーリングにも使用できます)