我有一个作为外壳程序(Windows 10 Enterprise)运行的自定义应用程序,用于特定用户-即该用户直接启动到该应用程序中。
但是,我希望能够提供对WiFi设置表格的访问。我已经读到,执行此操作的方式类似于
Process.Start("ms-settings:network-wifi");
或
Process.Start("ms-availablenetworks:");
但是,据我所知,这依赖于作为shell运行的资源管理器。
我尝试过...
Process proc = new Process();
proc.StartInfo.FileName = @"c:\windows\explorer.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.Arguments = "ms-availablenetworks:";
proc.Start();
如果我在正常环境下运行,即以资源管理器作为外壳,以上所有方法都可以正常工作。
但是对于这个用户(使用我的自定义外壳应用程序),我得到了一个explorer.exe实例,该实例正在运行并显示错误,Class not registered
[我也曾经使用LaunchUriAsync()
,但我认为这对我没有帮助,除了它仅适用于Windows Store应用程序提供了我所阅读的内容,不是。
我设法使它正常工作
首先自行启动资源管理器,然后再启动Process.Start()
以运行设置页面。
[不幸的是,当explorer.exe
运行时,它显示我不需要的任务栏。 (我以前曾假设我可以使用组策略设置或类似的方法将其隐藏,但事实并非如此)。
但是我想那是另一个问题...