2014-05-06 52 views
1

背景

我正在开发的公司正在开发运行Windows 8 Pro(桌面模式)的平板电脑平台应用程序。用户不应该能够访问任何不是应用程序本身的内容:魅力将被禁用,任务栏将隐藏在应用程序后面等。以编程方式启用Windows 8 Pro移动宽带设备

这也意味着用户不应该能够更改网络设置,保持设备始终连接到我们的责任。到目前为止,我已经成功使用移动宽带API来确保设备在有移动网络可用时连接。它会检测断开事件并尝试再次连接。

的问题

尽管用户不应该是能够做到这一点,我考虑了用户遵循这个步骤的情况下:

  • 用户打开右侧的魅力,
  • 点击设置,在
  • 点击了网络,
  • 点击了更多电脑设置,
  • 点击了无线,一个nd
  • 禁用移动宽带设备。

我希望能够以编程方式恢复此功能并再次启用它。

企图

我已经尝试了一些不同的方法来迫使3G被重新启用。他们中的大多数给了我相同的结果:他们应该使设备没有错误,但我仍然无法使用它。 Enable-NetAdapter Powershell不会抛出错误,并且Win32_NetworkAdapter的启用方法似乎正常工作,但没有骰子。

我想也许是方法IMbnRadio :: SetSoftwareRadioState可能是我后,但我无法到达它,当设备被禁用。 IMbnInterfaceManager :: GetInterfaces方法抛出一个COMException,声明无法找到该元素(HRESULT = 0x80070490)。

MbnInterfaceManager mbnInterfaceManager = new MbnInterfaceManager(); 
IMbnInterfaceManager interfaceManager = (IMbnInterfaceManager)mbnInterfaceManager; 

// The following line throws a COMException: 
IMbnInterface[] interfaces = (IMbnInterface[])interfaceManager.GetInterfaces(); 

mobileInterface = interfaces[0]; 
mobileRadio = (IMbnRadio)mobileInterface; 

uint requestId; 
mobileRadio.SetSoftwareRadioState(MBN_RADIO.MBN_RADIO_ON, out requestId); 

有没有办法覆盖在“更多电脑设置?”上设置的用户偏好设置?

回答

1

我找到了一个粗略的方法来解决这个问题。 请记住,这是无证的,错误的,无耻的和不道德的,并可能最终破坏。客户意识到这一点,但更喜欢保持对操作系统的访问限制。

大小写设置保存在注册表中。至少在我检查过的计算机中,它存储在名为RadioOff的密钥中的HKLM \ SYSTEM \ CurrentControlSet \ Control \ Class \ {4d36e972-e325-11ce-bfc1-08002be10318} \ 0022中。

飞行模式设置也存储在注册表中,但在不同的地方。它位于名为(默认)的键中的HKLM \ SYSTEM \ CurrentControlSet \ Control \ RadioManagement \ SystemRadioState中。

更改这些键并重新启动后,一切似乎工作正常。但我会重复一遍:你真的不应该这样做,特别是飞机模式的事情。

+0

Hi @AndréRamaciotti。你是如何找到这些注册表项的。我需要找到控制在平板电脑上启用/禁用蜂窝连接的按键。谢谢。 – Alex

+0

嗨@Alex,对于迟到的答案感到抱歉。我导出了完整的注册表层次结构,更改了设备设置,重新导出了注册表层次结构,然后使用diff工具对它们进行了比较。 –

相关问题