C# 以编程方式打开Windows 8蓝牙控制面板

C# 以编程方式打开Windows 8蓝牙控制面板,c#,.net,wpf,windows-8,bluetooth,C#,.net,Wpf,Windows 8,Bluetooth,回到Win7和更早的版本,我过去只能在C#中实现这一点: 但是,在Windows 8.0和8.1中,虽然这些代码仍然有效,但它通常只是将您转储到设备控制面板,而不是蓝牙面板(这是不一致和不可靠的) 我找到了一个关于如何在桌面上创建一个直接打开蓝牙控制面板的快捷方式的漂亮教程,但是我尝试了许多使用Process.Start()的排列,但一直无法在我的应用程序中实现这一点: 当我在我的Win8机器上按照教程创建快捷方式时,它每次都像一个符咒一样工作。请注意,我希望实现的第一个解决方案是打开Wind

回到Win7和更早的版本,我过去只能在C#中实现这一点:

但是,在Windows 8.0和8.1中,虽然这些代码仍然有效,但它通常只是将您转储到设备控制面板,而不是蓝牙面板(这是不一致和不可靠的)

我找到了一个关于如何在桌面上创建一个直接打开蓝牙控制面板的快捷方式的漂亮教程,但是我尝试了许多使用
Process.Start()
的排列,但一直无法在我的应用程序中实现这一点:

当我在我的Win8机器上按照教程创建快捷方式时,它每次都像一个符咒一样工作。请注意,我希望实现的第一个解决方案是打开Windows RT/WinStore/ModernUI蓝牙控制面板,而不是“桌面模式”控制面板


我希望在WPF应用程序中使用C#和.Net以编程方式打开蓝牙控制面板。

Microsoft TAM给出的解决此问题的代码如下:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = Environment.ExpandEnvironmentVariables(@"%localappdata%\Packages\windows.immersivecontrolpanel_cw5n1h2txyewy\LocalState\Indexed\Settings\en-US\AAA_SettingsPagePCSystemBluetooth.settingcontent-ms");
startInfo.UseShellExecute = true;
Process.Start(startInfo);
请注意,“en-US”文件夹需要替换为当前区域设置信息,以便提供国际化!(还需要语言包。)

然而,他们声称前一种解决方案也应该可靠地工作:

Process.Start("control", "bthprops.cpl");

我将继续与Microsoft合作,以确定为什么更简单的解决方案不能可靠地工作,但上面的代码同时提供了一个解决方案。

我目前已向Win8 Apps Evangelist团队提出了一份关于此问题的解决方案,但目前还没有任何消息。不过,一旦我得到答案,我会在这里添加答案。
Process.Start("control", "bthprops.cpl");