C++ #include <windows.h> #include <stdio.h> #include <string> #include <wininet.h> #pragma comment(lib,"Wininet.lib") #include <ras.h> #pragma comment(lib,"rasapi32.lib") #pragma comment( lib, "ws2_32.lib" ) DLL_API int __cdecl ReDail() { //断网 // if(mlConnection) // { // InternetHangUp(mlConnection, 0); // }else RAS 断网中 DWORD dwConnections; RASCONN rasconn; DWORD dwSize ; DWORD dwSuccess; rasconn.dwSize = sizeof(RASCONN); dwSize = rasconn.dwSize; dwSuccess = RasEnumConnections(&rasconn, &dwSize, &dwConnections); if (dwSuccess == 0) { if (dwConnections) // 一般只有一个活动连接 { RasHangUp(rasconn.hrasconn); } } DWORD mlConnection = 0; char* adslName = "e"; //拨号 //DWORD resultDial = InternetDial(NULL, NULL, 0x8000, &mlConnection, 0); DWORD resultDial = InternetDial(NULL, adslName, 0x8000, &mlConnection, 0); if((resultDial == ERROR_SUCCESS) && mlConnection) { return 0; } else { return -1; } } c# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime; using System.Runtime.InteropServices; using System.Threading; using System.ComponentModel; namespace BaiduRobot { class CDail { } /// <summary> /// /// /// </summary> public struct RASCONN { public int dwSize; public IntPtr hrasconn; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)] public string szEntryName; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)] public string szDeviceType; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] public string szDeviceName;