2011-02-08 3 views
0

ダイヤルアップ接続が接続されているか切断されていることを示すWindows APIはありますか?どのWindows APIを使用すると、プログラムでダイヤルアップ接続にダイヤルできますか。 C#.Netを使用してWindows 7で個人用のアプリケーションを開発したいと考えています。誰か助けてくれますか?ネットワーク接続をダイヤルするためのWindows API

答えて

1

RasDialDlgと関連APIがお探しのものである可能性があります。ただ、単一の関数を呼び出すよりも少し複雑です。

1

まずWinINetのMSDNのドキュメント、特にEstablishing a Dial-Up Connection to the Internetというセクションをチェックしてください。

アクティブなダイヤルアップ接続があるかどうかを判断するには、wininet.dllで提供されているInternetGetConnectedState functionを使用します。

// possible values returned in lpdwFlags parameter 
const int INTERNET_CONNECTION_CONFIGURED = 0x40; 
const int INTERNET_CONNECTION_LAN = 0x02; 
const int INTERNET_CONNECTION_MODEM = 0x01; 
const int INTERNET_CONNECTION_OFFLINE = 0x20; 
const int INTERNET_CONNECTION_PROXY = 0x04; 
const int INTERNET_RAS_INSTALLED = 0x10; 

[DllImport("wininet.dll", SetLastError=true, CharSet=CharSet.Auto)] 
static extern bool InternetGetConnectedState(out int lpdwFlags, int dwReserved); 

また、ネットワーク接続にダイヤルするには、InternetDial functionを使用できます。

// possible values for dwFlags parameter 
const int INTERNET_AUTODIAL_FORCE_ONLINE = 0x1; 
const int INTERNET_AUTODIAL_FORCE_UNATTENDED = 0x2; 
const int INTERNET_DIAL_FORCE_PROMPT = 0x2000; 
const int INTERNET_DIAL_UNATTENDED = 0x8000; 
const int INTERNET_DIAL_SHOW_OFFLINE = 0x4000; 

// possible return values 
const int ERROR_SUCCESS = 0x0; 
const int ERROR_INVALID_PARAMETER = 0x57; 
const int ERROR_NO_CONNECTION = 0x29C; 
const int ERROR_USER_DISCONNECTION = 0x277; 

[DllImport("wininet.dll", SetLastError=true, CharSet=CharSet.Auto)] 
static extern int InternetDial(IntPtr hWndParent, string lpszConnected, 
           int dwFlags, ref int lpdwConnection, 
           int dwReserved); 

代わりに、.NETプラットフォームに、Windowsのリモートアクセスサービス(RAS)のコンポーネントへのアクセスを提供しようとする試みである、DotRas projectを探索することができます。これはおそらく自分で機能を実装するよりも簡単です。

+0

DotRasを使用して接続がアクティブかどうかを判断するには、結果がRasConnection.GetActiveConnectionsメソッドを呼び出さないようにチェックするだけです。現在アクティブなRASベースの接続がすべて含まれています。 –

関連する問題