首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式启用Windows 8 Pro移动宽带设备

以编程方式启用Windows 8 Pro移动宽带设备
EN

Stack Overflow用户
提问于 2014-05-06 19:12:08
回答 1查看 709关注 0票数 1

背景

我工作的公司正在为运行Windows8Pro(桌面模式)的平板电脑开发一个类似kiosk的应用程序。用户不应该能够访问任何不是应用程序本身的东西:魅力将被禁用,任务栏将隐藏在应用程序后面,等等。

这也意味着用户不应该改变网络设置,留下了保持设备始终与我们连接的响应能力。到目前为止,我已经成功地使用移动宽带API,以确保设备是连接的,只要有一个移动网络。它将检测断开的事件并再次尝试连接。

问题

虽然用户不应该能够这样做,但我考虑的是用户遵循以下步骤的情况:

  • 用户打开右边的魅力,
  • 点击设置,
  • 点击网络,
  • 点击更多的PC设置,
  • 点击无线,和
  • 禁用移动宽带设备。

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

尝试

我尝试了一些不同的方式来迫使3G重新启用。他们中的大多数都给了我同样的结果:他们应该没有错误地启用设备,但我仍然不能使用它。Powershell中的启用-NetAdapter不会抛出错误,NetworkAdapter的启用方法似乎可以工作,但没有骰子。

我想也许IMbnRadio::SetSoftwareRadioState是我想要的方法,但当设备被禁用时,我无法找到它。方法IMbnInterfaceManager::GetInterface抛出一个COMException,声称找不到该元素(HRESULT = 0x80070490)。

代码语言:javascript
复制
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);

是否有一种方法可以覆盖设置在“更多PC设置”上的用户首选项?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-08 13:46:49

我找到了一个解决这个问题的粗略方法。要记住,这是没有记录的,错误的,无耻的,不道德的,并且可能最终打破。客户端知道这一点,但倾向于限制对操作系统的访问。

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

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

在更改了这些键并重新启动之后,一切看起来都很好。不过,我要重复一遍:你真的不应该这样做,特别是飞机模式的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23503029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档