2011-02-08 6 views
0

전화 접속 연결이 연결 또는 연결 해제 상태임을 알려주는 Windows API는 무엇입니까? 어떤 Windows API를 사용하여 프로그래밍 방식으로 전화 접속 연결을 다이얼 할 수 있습니까? Windows 7에서 C# .Net을 사용하여 개인 용도로 응용 프로그램을 개발하고 싶습니다. 누군가 나를 도울 수 있습니까?네트워크 연결 전화 걸기 용 Windows API

답변

1

나는 RasDialDlg과 관련된 API가 당신이 찾고있는 것일 수 있다고 믿습니다. 하나의 함수를 호출하는 것보다 약간 복잡합니다.

1

WinINet, 특히 Establishing a Dial-Up Connection to the Internet 섹션에 대한 MSDN 설명서를 확인하십시오.

활성 전화 접속 연결이 있는지 확인하려면 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 기반 연결이 포함됩니다. –