システムに「PersonalInternetMovil」というダイヤルアップ接続があり、C#を使用してこの接続を接続および切断する必要があります。
質問する
1886 次
2 に答える
4
DotRasを見てください。
簡単なデモは次のとおりです:http ://www.youtube.com/user/DotRasProject
基本的にRasDial
、RasHangUp
WinAPIメソッドを使用する必要があります。PInvokeを実行するか、APIを既にラップしているDotRas.NETクラスを使用することができます。
于 2011-06-23T02:18:49.060 に答える
4
このコードを使用できます。これらのインポートステートメントと列挙型は、接続を検出し、ダイヤルアップボックスを起動して、完了したら電話を切ります。ユーザーにダイヤルアップ接続を選択させたくない場合は、むしろユーザーInternetAutodial/InternetAutodialHangupペアを使用します。ただし、このペアは、デフォルトとして設定されているダイヤルアップのみを使用することに注意してください。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//BEGIN
InternetConnectionState flags = 0;
int nConnection = 0;
bool bInternet = InternetGetConnectedState(ref flags,0);
if (bInternet == false)
{
//Not Connected
if (flags == 0)
{
//Do something to tell the user to install some internet connection
}
int nResult = InternetDial(IntPtr.Zero,"",(int)InternetDialFlags.INTERNETDIALFORCEPROMPT , ref nConnection , 0);
switch(nResult)
{
case 87://Bad Parameter for InternetDial - Couldn't Connect";
break;
case 668://No Connection for InternetDial - Couldn't Connect";
break;
case 631://User Cancelled Dialup
break;
default://Unknown InternetDial Error
break;
case 0://Connection Succeeded
break;
}
//Do whatever you need to do on the internet (send mail etc)
InternetHangUp(nConnection,0);
//DONE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[DllImport("wininet.dll",CharSet=CharSet.Auto)]
static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved);
[Flags]
enum InternetConnectionState: int
{
INTERNETCONNECTIONMODEM = 0x1,
INTERNETCONNECTIONLAN = 0x2,
INTERNETCONNECTIONPROXY = 0x4,
INTERNETRASINSTALLED = 0x10,
INTERNETCONNECTIONOFFLINE = 0x20,
INTERNETCONNECTIONCONFIGURED = 0x40
}
[DllImport("wininet.dll",CharSet=CharSet.Auto)]
static extern int InternetDial(IntPtr hwndParent,[MarshalAs(UnmanagedType.LPStr)] string strConnection,[MarshalAs(UnmanagedType.U4)]int dwFlags,ref int dwConnection,int dwReserved);
[Flags]
enum InternetDialFlags: int
{
INTERNETDIALFORCEPROMPT =0x2000,
INTERNETDIALSHOWOFFLINE =0x4000,
INTERNETDIAL_UNATTENDED =0x8000
}
[DllImport("wininet.dll",CharSet=CharSet.Auto)]
static extern int InternetHangUp([MarshalAs(UnmanagedType.U4)] int nConnection,[MarshalAs(UnmanagedType.U4)]int dwReserved);
于 2011-06-23T02:22:44.473 に答える