Windows 8 在不运行explorer.exe的情况下显示网络弹出按钮(“连接到网络”图标)

Windows 8 在不运行explorer.exe的情况下显示网络弹出按钮(“连接到网络”图标),windows-8,wifi,windows-shell,windows-explorer,kiosk-mode,Windows 8,Wifi,Windows Shell,Windows Explorer,Kiosk Mode,要求: 我们的应用程序取代了常用的windows shell explorer.exe。这是我们提供的封闭系统的产品要求。 我们应该让用户选择一个wi-fi网络并连接到它。 问题:wi-fi网络对话框仅在explorer.exe运行时显示 我们尝试的是: 编写我们自己的使用wlan API的wi-fi管理器。它列出了可连接的网络,并允许用户连接/断开连接。问题:需要测试的网络类型/配置太多,尤其是当轮子已经被发明和重新发明时 尝试并检查“网络”对话框是如何实现的。它似乎是一个未记录的COM接口I

要求:

我们的应用程序取代了常用的windows shell explorer.exe。这是我们提供的封闭系统的产品要求。 我们应该让用户选择一个wi-fi网络并连接到它。 问题:wi-fi网络对话框仅在explorer.exe运行时显示

我们尝试的是:

编写我们自己的使用wlan API的wi-fi管理器。它列出了可连接的网络,并允许用户连接/断开连接。问题:需要测试的网络类型/配置太多,尤其是当轮子已经被发明和重新发明时

尝试并检查“网络”对话框是如何实现的。它似乎是一个未记录的COM接口IUIRAdioManager。问题:它没有文档,所以没有API

使用现有的网络管理器,例如驱动程序附带的网络管理器。问题:它很难看,不符合产品的口味;而且它为用户打开了太多的选项,比如创建和加载配置文件,浏览文件系统上的文件——这些都是不可接受的

运行explorer.exe只是为了显示“网络”对话框,然后关闭它。问题:一旦我们运行explorer.exe,它会弹出metro视图并隐藏我们的全屏应用程序或显示任务栏

后者似乎是首选的解决方案:不需要重新发明轮子,它做需要的事情。只是要让explorer.exe不弹出,在后台保持安静

因此,我们有两种选择:

如何在没有explorer.exe的情况下显示“网络”弹出对话框

如何运行explorer.exe而不在应用程序上方弹出metro或任务栏


您的第一个解决方案将难以实施。我几乎可以肯定网络窗口依赖于浏览器

然而,你的第二个是完全可能的

要隐藏任务栏,您需要使用FindWindowEx查找一个窗口,以查找任务栏名称为Shell\u traywnd。这将隐藏任务栏和开始按钮。编辑:除非您正在实现自己的任务栏,否则您可能希望将任务栏设置为自动隐藏。 接下来,您需要隐藏所有metro程序。以与上面类似的方式,找到名为EdgeUiInputWndClass的类并将其关闭。您应该能够获得它的进程名,然后终止该进程。 Windows键。这有点难。您可能需要使用并删除键或键盘挂钩低级别键盘挂钩,只需忽略具有与windows键相同扫描码的按键。左窗为0x5b,右窗为0x5c。请注意,这不会阻止Ctrl+Alt+Del。 最后,要显示弹出按钮,可以运行%windir%\explorer.exe shell::{38A98528-6CBF-4CA9-8DC0-B1E1D10F7B1B} . 编辑2: 您还应该能够通过隐藏toast通知 当然,我不明白为什么你不能直接使用Windows8/8.1,然后把应用程序放进去。
我怀疑你的两个选择中有一个是可能的。