【发布时间】:2015-06-13 02:45:07
【问题描述】:
我正在编写一个需要在 Windows 上打开或关闭飞行模式的应用程序。我见过this question,但答案只能获得状态,或者说你不能为 Metro 应用程序做这样的事情。我不制作现代/地铁应用程序,所以我不需要担心应用程序沙盒。
是否有打开/关闭飞行模式的api,我应该如何使用它?
编辑:在我的用例中,我知道我可以控制它,并且用户对此表示满意。
另外,我发现this msdn question 摘录如下:
Windows 8(build 8250),我可以在 Metro Style Network Setting UI 中打开/关闭飞行模式。
如何以编程方式执行此操作?
Microsoft 为无线单选按钮定义了 HID 使用代码(使用:0xC6)。
问题:无线单选按钮是否有一些虚拟键码?如果是这样,Application 可以通过 Keybd_event 发送这个 keycode。
WLANAPI.dll 导出 API WlanStoreRadioStateOnEnteringAirPlaneMode ,但没有该 API 的任何文档。
问题:您能提供详细信息吗?是用来控制飞行模式的吗,这个API怎么调用?
显然(给出答案的概要),可以使用MobileBroadbandRadioState 枚举检查飞行模式的状态。
HID 路由可能是docs。显然这是一个是否可以将代码 0xc6 发送到 kbd_event 的问题。
EDIT2:显然有一个名为Network Flyout 的窗口,我正在考虑枚举孩子们以找到开关,但我没有取得多大成功。我将不得不使用更多的 Spy++ 来找出答案。
【问题讨论】:
-
我不知道是否有可访问的 API,但您是否考虑过微软和大多数计算机所有者都不希望您的软件永远 出现扰乱飞行模式做?飞行模式关乎每台计算机数十人的人身安全,如果我将计算机置于飞行模式,那么我该死的不希望你的软件将其退出。
-
嗯,有 api 调用来连接和断开网络,所以我看不出有什么区别。
-
用户将设备置于飞行模式时会覆盖所有这些。
-
@ironmark 20 - 找个好律师 - 感觉你可能需要一个
-
@JohnBollinger:这太荒谬了。如果是为了安全,你可以打赌工作人员会检查每一个电子设备,以确保其无线电已关闭。或者设备根本不允许进入机舱。