首页 > 系统相关 >.NET 6学习笔记(4)——如何在.NET 6的Desktop App中使用Windows Runtime API

.NET 6学习笔记(4)——如何在.NET 6的Desktop App中使用Windows Runtime API

时间:2022-10-23 17:14:18浏览次数:72  
标签:10 Windows App API NET Runtime net6.0

Windows Runtime API是当初某软为了区别Win32 API,力挺UWP而创建的另一套Windows 10专用的API集合。后来因为一些原因,UWP没火。为了不埋没很有价值的Windows Runtime API,某软只好允许.NET Framework的程序调用Windows Runtime API,我们在《迁移桌面程序到MS Store(4)——桌面程序调用Win10 API》中讨论过。
而从.NET 5开始,新.NET中Desktop App调用WinRT runtime的方式又发生了变化。总体来说更简单了,今天我们就一起来实践一番。
首先我们创建一个新的Console工程。Framework选择.NET 6。除了学习性质的个人项目,否则我只推荐Long-term support的版本,商业性质的项目发布出去以后,突然对应版本的.NET Runtime官方支持周期到了,是比较滑稽的。

在这样一个Console的程序中,我打算访问一个常见的WinRT API:Windows.Devices.Raidos命名空间下的Radio类。当然我们也可以通过Win32 API去操作蓝牙,可如果仅希望开、关和查询蓝牙状态这样的简单操作,Win32 API就显得有些蛋疼了。

而Radio类对.NET 程序而言,就显得友好许多。首先让我们右键编辑project文件。

 将默认的:

<TargetFramework>net6.0</TargetFramework>

更改为对应具体Windows SDK版本:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

其中SDK版本的对应关系如下:
• net6.0-windows10.0.17763.0: 对应 Windows 10, version 1809.
• net6.0-windows10.0.18362.0: 对应 Windows 10, version 1903.
• net6.0-windows10.0.19041.0: 对应 Windows 10, version 2004.
• net6.0-windows10.0.22000.0: 对应 Windows 11.
完成这一步之后,即可像UWP程序里一样,通过using添Windows.Devices.Raidos命名空间,来直接使用WinRT API了。

using Windows.Devices.Radios;

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");


foreach (var radio in await Radio.GetRadiosAsync())
{
    Console.WriteLine($"Name:{radio.Name}, Kind:{radio.Kind}, State:{radio.State}");
}

Console.ReadLine();

是不是又一次觉得啊软这回能Make desktop great again!这个现在还不好说,但学习一下如何开发现代化的Desktop App总不是坏事。

附上Github链接:

manupstairs/WinRTApiInNet6: Introduce how to use WinRT API in .NET 6 project. (github.com)

以下链接,是MS Learn上Windows开发的入门课程,单个课程三十分钟到60分钟不等,想要补充基础知识的同学点这里:

开始使用 Visual Studio 开发 Windows 10 应用

开发 Windows 10 应用程序

编写首个 Windows 10 应用

创建 Windows 10 应用的用户界面 (UI)

增强 Windows 10 应用的用户界面

在 Windows 10 应用中实现数据绑定

标签:10,Windows,App,API,NET,Runtime,net6.0
From: https://www.cnblogs.com/manupstairs/p/16818903.html

相关文章

  • 命令行远程重启Windows
    前提条件:想要远程控制Windows,双方之间网络必须互通,且对端需要开启IPC$,并且本地能访问对端计算机的445端口(Telnet测试下对端445端口是否能连上)1、开启IPC$netshare......
  • app自动化测试环境安装
    一、环境依赖app自动化测试环境如下:appium服务第三方库appium-python-client手机或模拟器java环境jdk1.8android环境二、appium服务安装1、下载地址http://appi......
  • Kubernetes--Pod节点选择器nodeSelector(标签)
    Pod节点选择器是标签及标签选择器的一种应用,它能够让Pod对象基于集群中工作节点的标签来挑选倾向运行的目标节点。Kubernetes的kube-scheduler守护进程负责在各工作节点......
  • 使用 Windows Core Audio APIs 进行 Loopback Recording 并生成 WAV 文件
    参考文档COMCodingPracticesAudioFileFormatSpecificationsCoreAudioAPIsLoopbackRecording#include<iostream>#include<fstream>#include<vector>#......
  • 有哪些APP安全小测试
    app安全测试方法小百科​随着无线网络和移动通信技术的发展,智能手机功能日趋强大,因此也将APP市场带动了起来。但是随着手机操作系统日益标准化,网络出击手段不同往日,黑客已经......
  • Flink读mysql的时候报错java.net.SocketException: Connection timed out (Read faile
    通过flinkjoin表关联对mysql进行读取出现下面的问题?求指点atorg.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.ja......
  • app安全测试方法小百科
     随着无线网络和移动通信技术的发展,智能手机功能日趋强大,因此也将APP市场带动了起来。但是随着手机操作系统日益标准化,网络攻击手段不同往日,黑客已经可以像攻击电脑信息......
  • 【linux学习】SS命令和Netstat命令比较
    ss和netstat区别:ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。原因如下:1)当服务器的socket连接数量变得非常大时,无论是使用net......
  • Kubernetes架构分析介绍篇(进阶篇)
    Kubernetes设计理念与分布式系统分析和理解Kubernetes的设计理念可以使我们更深入地了解Kubernetes系统,更好地利用它管理分布式部署的云原生应用,另一方面也可以让我们......
  • 如何测试一个APP的登录场景?-小白妹
    如何测试一个APP的登录场景页面基本元素的操作;大量字符,特殊字符,边界值,必填项校验;注册手机号的特殊性验证,注册邮箱的格式验证;密码大小写是否敏感,密码是否加密展示,密码是否有......