在使用Internet后掛斷線路
發表于:2007-07-14來源:作者:點擊數:
標簽:
WinInet API提供的功能很強大,但是當關閉掉Internet事務卻不能關閉掉dial up連接。在WinInet API中沒有提供相應的函數完成該功能。 解決方法: RAS API可以通過調用RasHangUp(...)關閉連接,但是需要RAS句柄。有兩種方法可以得當RAS句柄:1、自己建立RAS連接
WinInet API提供的功能很強大,但是當關閉掉Internet事務卻不能關閉掉dial up連接。在WinInet API中沒有提供相應的函數完成該功能。
解決方法:
RAS API可以通過調用RasHangUp(...)關閉連接,但是需要RAS句柄。有兩種方法可以得當RAS句柄:1、自己建立RAS連接是保存該句柄,但這樣做對與解決當前提出的問題是沒必要的,2、通過RasEnumConnections(...)列舉所有句柄。
所需環境:
RASAPI32.DLL,該連接庫在安裝播號
網絡時會自動安裝。
RAS.H
RASAPI32.LIB
示范代碼:
// Quit a dial up connection - rasapi32.lib und #include "ras.h" needed
bool DisconnectRas()
{
bool bOk = false;
RASCONN ras[20];
DWORD dSize,dNumber,dCount;
ras[0].dwSize = sizeof(RASCONN);
dSize = sizeof( ras );
// Get active RAS - Connection
if( RasEnumConnections( ras, &dSize, &dNumber ) == 0 )
{
bOk = true;
for( dCount = 0; dCount < dNumber; dCount++ )
{
// Hang up that connection
if( RasHangUp(ras[dCount].hrasconn) != 0 )
{
bOk = false;
break;
}
}
}
return bOk;
}
原文轉自:http://www.anti-gravitydesign.com