WinInet API提供的功能很强大,但是当关闭掉Internet事务却不能关闭掉dial up连接。在WinInet API中没有提供相应的函数完成该功能。 解决方法:RAS API可以通过调用RasHangUp(...)关闭连接,但是需要RAS句柄。有两种方法可以得当RAS句柄:1、自己建立RAS连接是保存该句柄,但这样做对与解决当前提出的问题是没必要的,2、通过RasEnumConnections(...)列举所有句柄。 所需环境:
示范代码:// 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; } | |