2012-09-29 3 views
2

인터넷에서 답변을 찾지 못해서 글을 남깁니다. C#에서 WLAN (관리되는 C++ 사용) 프로젝트를 작성 중입니다. 네트워크에 연결된 인터페이스 (네트워크 카드)를 고려할 때 인터페이스가 네트워크에 얼마나 오래 연결되어 있는지 알 수있는 방법이 있습니까?무선 어댑터로의 연결 시간 검색

즉, Windows 7 (트레이시콘 -> 네트워크 및 공유 센터 열기)의 연결 정보에서 볼 수있는 시간을 알고 싶습니다.

나는 분명히 희망을 갖고 나의 가난한 영어를 사과한다.

http://imageshack.us/photo/my-images/39/immaginenrz.png/

답변

0

는 윈도우의 getiftable() 기능을 찾고 있습니다 될 수 있습니다. 이 특정 네트워크 인터페이스

Here 관련된 모든 정보를 제공하는 WINAPI 함수

MSDN

에 따라

Here 좋은 예이다 전체 구조

의 설명이다 dwLastChange

Type: DWORD 

The length of time, in hundredths of seconds (10^-2 sec), starting from the last computer restart, when the interface entered its current operational state. 

연결되면 시간이 있습니다. 즉 연결 상태이기 때문입니다. 여기

당신은 선언에 대한 자세한 도움을 pinvoke.net을 사용할 수 있습니다 C#을

public static extern uint GetIfTable(IntPtr pIfTable, ref uint pdwSize, bool bOrder); 

Declare Function GetIfTable Lib "iphlpapi.dll" (TODO) As TODO 

     IPHelperTraslation.GetIfTable(IntPtr.Zero, ref size, false); 

     IPHelperTraslation.GetIfTable(buf, ref size, false); 

에서이 함수의 선언입니다. 이 닷넷 프레임 워크 쉬운 방법입니다하지만

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.operationalstatus.aspx

체크 아웃 그들이 네트워크 상태 감지 기능을 구현하는 방법을 예상하지 같은

는 것 같습니다. 내 생각에, 상태가 마지막으로 변경된 이후로 응용 프로그램에 시간을 기록해야합니다.

필자도 실제적으로 getifrow 함수를 테스트하여 실망 스럽지만 Win7에서 항상 0을 반환하고 다른 플랫폼에 대해서는 알지 못합니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 C# 프로젝트에서이 "lastChange"를 어떻게 사용할 수 있습니까? –

+0

이것은 Windows API 호출이며, API 호출을 만들고, pinvoke를 작성하고, 먼저이 API의 적절한 선언을 찾아서 사용해야합니다. –

+0

죄송하지만, 나중에 C++ cli를 사용하고 있다는 것을 알았습니다. 따라서 어떤 선언도 필요하지 않습니다. –