蓝牙设置相关界面,以下是通过C#方式打开的几个方式,记录一下
蓝牙设置界面
1.控制面板命令bthprops.cpl
可以用控制面板 control+bthprops.cpl,也可以直接bthprops.cpl。更多的命令见:所有运行命令指令大全、CMD & CPL:快捷系统命令和控制面板命令
bthprops.cpl,可以打开蓝牙的连接设置界面
1 //打开蓝牙设置 2 var process = new Process {StartInfo = {FileName = "control", Arguments = "bthprops.cpl"}}; 3 process.Start();
也可以通过C盘下的文件bthprops.cpl路径启动
C:\Windows\System32\bthprops.cpl
注:如果bthprops.cpl无法跳转至蓝牙设置界面,则可能是因为没有蓝牙模块。
如果判断有没有蓝牙网络呢?
可以查看网络适配器列表:
1 /// <summary> 2 /// 是否含有蓝牙适配器 3 /// </summary> 4 /// <returns></returns> 5 public static bool HasBluetoothNetwork() 6 { 7 //获取本地计算机上网络接口的对象 8 NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); 9 return adapters.Any(i => i.Name.Contains("蓝牙")); 10 }
2.win10设置url
控制面板是win7的概念。而Win10有一个新的设置协议,可以通过url快速访问相关设置/应用,几乎每个“设置”项都有其自己的url
- 可以在win+R”运行“框中,输入ms-setting命令
- 可以在命令行,输入ms-setting命令
- 你也可以在资源管理器地址栏,输入ms-setting命令
上面这些路径(当然还有其它方式),都能打开相关设置界面。
通过C#代码打开蓝牙设置界面:
1 Process process = new Process(); 2 process.StartInfo.FileName = "cmd.exe"; 3 process.StartInfo.CreateNoWindow = true;//不显示程序窗口 4 process.StartInfo.UseShellExecute = false;//是否使用操作系统shell启动 5 process.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息 6 process.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息 7 process.StartInfo.RedirectStandardError = true;//重定向标准错误输出 8 process.Start();//启动程序 9 process.StandardInput.WriteLine("start ms-settings:bluetooth &exit"); 10 process.StandardInput.AutoFlush = true; 11 string strOuput = process.StandardOutput.ReadToEnd(); 12 process.WaitForExit(); 13 process.Close();
UWP中可以通过API-LaunchUriAsync,导航到蓝牙设置页面。
想了解更多LaunchUriAsync,可以访问水哥的博客:UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接
1 var uri = new Uri(@"ms-settings:bluetooth"); 2 var success = await Windows.System.Launcher.LaunchUriAsync(uri);
蓝牙设备列表
通过资源管理器地址栏输入 shell:::{28803F59-3A75-4058-995F-4EE5503B023C},可以跳转到外部蓝牙设备列表
其中,28803F59-3A75-4058-995F-4EE5503B023C是注册表中的值
C#,可以通过Process来打开蓝牙设置界面:
1 //打开蓝牙搜索列表 2 var process = new Process { StartInfo = { FileName = "Explorer", Arguments = "shell:::{28803F59-3A75-4058-995F-4EE5503B023C}" } }; 3 process.Start();