2012-07-26 3 views
3

비행기 모드가 Windows 8에서 활성화되어 있는지 확인하고 상태를 전환해야합니다. 현재 C# .NET 4.0 Windows Forms 응용 프로그램에서 작업하고 있지만이 질문에 대한 대답은 이에 국한되어서는 안됩니다.Windows 8에서 비행기 모드를 프로그래밍 방식으로 확인/전환하는 방법은 무엇입니까?

+0

왜 thry가 Winkey + I 바를 통해 매우 빠른 액세스를 제공하지 않습니까? – Deanna

+0

@Deanna 프로그래밍 방식으로 액세스해야합니다. –

답변

4

불행히도 Metro 응용 프로그램이 Windows 8에서 비행기 모드를 변경하는 프로그래밍 방식은 없습니다. 응용 프로그램이 사용자의 허가없이 sandbox 외부로 이동하여 시스템 설정을 수정하는 것은 Metro 지침과 다릅니다 (토론은 http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/1ad10725-b1b8-4723-b2c3-861900809e02).

이제 Windows.Networking.NetworkOperators namespace의 일부 기능을 사용하여 상태를 파악할 수 있습니다. 특히 MobileBroadbandRadioStateNetworkDeviceStatus 열거 형을 확인하십시오.

또는 Windows 키 + I, PC 설정 변경, 무선, 비행기 모드를 사용하여 설정에 액세스하는 방법을 설명하여 사용자에게 변경하라는 메시지를 표시 할 수 있습니다.

+0

기존 데스크톱 앱을 개발할 때도 Metro 가이드 라인에 제약을 받습니까? –

+1

아니요, Metro 지침은 Metro 응용 프로그램에만 적용되며 기존 데스크톱 응용 프로그램에는 적용되지 않습니다. –

+0

그렇다면 메트로 앱이 비행기 모드를 프로그래밍 방식으로 전환 할 수는 없지만 데스크톱 앱이 가능할 수도 있습니다. –

2

다음은 필요한 정보를 제공 할 NetworkConnectivityLevel 코드를 보여주는 코드입니다. 그것을 바꿀 방법이 있는지 나는 모른다. 당신이 연결할 네트워크를 선택하는 방법을 제공해야하기 때문에 나는 그것을 의심합니다.

public static NetworkConnectivityLevel GetNetworkConnectivityLevel() 
    { 
     ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile(); 

     var ncl = NetworkConnectivityLevel.None; 

     if (profile != null) 
     { 
      ncl = profile.GetNetworkConnectivityLevel(); 
     } 

     return ncl; 
    } 
관련 문제