首页

文章

如何从C#桌面应用程序中调用Windows 8的WinRT API

发布网友 发布时间:2022-04-19 09:42

我来回答

1个回答

热心网友 时间:2023-08-23 21:12

然而,尽管在Windows 7或者更高版本中支持定位传感器内置在.NET 4 库中, 但我想访问完整的内置在Windows 8自身中的传感器和定位平台。这些API 通过COM可用,而且我可以通过COM调用它们,但是通过WinRT层来调用它们就更好了。这就是WinRT存在的原因.这让我思考WinRT以及它的意义。我在数月前发表了一篇博文真正弄清楚了一些东西,但是我总觉得所有试图解释事情如何协同的各种各样的图表说明方式太复杂。免责声明:所有图表就其性质而言过于简单化。我的工作是有关Web方面的,而不是Windwos 方面,所以这都是我自己的意见和推测。我不为Windows组织工作,我只是一个试图为新手编写一个应用程序的家伙。我想它并不像这些图表那么复杂。 我画这个是为了帮助自己理解。就像C 语言有一个C运行时为它提供一系列功能支持及功能的调用约定,Windows 运行时(WinRT)为Windows和它的语言也是如此。这些API和运行时包含有调用约定的元数据,这些约定使得调用WinRT API比调用COM更容易。在图表中,看出我是如何从.NET CLR中调用任何API的吗?在我想调用传感器API的情况下,当它们是Win32 API或者 COM API, 我想使用最高层的调用约定来调用它们,这是一个非常友好的Windows RT 。从C# 桌面应用程序中调用WinRT API我喜欢使用小型的控制台应用程序来做测试,但是这些不是“Windows商店应用程序”。所以我被允许从我的桌面或者控制台应用程序中调用WinRT吗?当然可以。在MSDN文档中有一章节列出了所有可以从桌面调用的针对Windows 8的WinRT API。 我可以明确地在文档中确认LightSensor 类,并且确保它是允许被桌面应用程序调用的。虽然没有明确定义,但是有文档描述了如何在非Windows商店应用程序中添加WinRT引用.从一个桌面应用程序中添加WinRT引用文档说的 有些隐晦:在桌面项目中,Core选项卡默认不会显示。用户可以选择针对Windows Runtime编写代码,通过打开项目节点的快捷菜单,选择Unload Project(不加载项目),添加以下代码片段,再次打开项目节点的快捷菜单,然后选择Reload Project(重新加载项目)。现在,当用户从项目中激活引用管理器对话框时,Core选项卡就会显示了。8.0我将会制作一个.NET 4.5 C#的控制台应用程序。我将修改.csproj 文件,添加TargetPlatformVersion行。我将会从解决方案资源管理器节点的上下文菜单中选择Add Reference(添加引用)。我将会添加一小段代码来检查我笔记本上的光传感器的状态:LightSensor light = LightSensor.GetDefault();if (light != null){uint minReportInterval = light.MinimumReportInterval;uint reportInterval = minReportInterval > 16 ? minReportInterval : 16;light.ReportInterval = reportInterval;light.ReadingChanged += light_ReadingChanged; //event hander} 然而,当我编译应用程序时,我得到了一个错误,错误出现在我试着挂钩一个事件处理器的那一行。用“+=”语言添加多点传送委托无法工作。Error 1 Property, indexer, or event'Windows.Devices.Sensors.LightSensor.ReadingChanged'is not supported by the language; try directly calling accessormethods 'Windows.Devices.Sensors.LightSensor.add_ReadingChanged(Windows.Foundation.TypedEventHandler)'or 'Windows.Devices.Sensors.LightSensor.remove_ReadingChanged(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken)'为了解决这个问题,并且将适当的应用程序集加载到我的应用程序来支持从我的桌面应用程序调用WinRT,我需要添加引用System.Runtime 和 System.Runtime.InteropService.WindowsRuntime.dll. 它在我系统的C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5目录下。现在编译我的应用程序。我甚至可以将委托改写成lambda表达式这种样式。light.ReadingChanged += (s, a) =>{Console.WriteLine(String.Format("There was light! {0}", a.Reading.IlluminanceInLux));}; 现在我能够运行我的小型控制台应用程序了,感知光线并且检测它的操作。以下是一个截图,显示了一束光照在我笔记本电脑的结果。你可以看到Ambient LightSensor检测到它,并且输出到控制台。现在在Visual Studio中,非Windows商店应用程序调用Windows RT 应用程序所需的就是一点手动操作,它的基本功能和运行时很适合我。 希望这几个手动操作步骤在未来某天能变成复选框。
ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 Netcore 网卡驱动器335安装一半怎么不动了 C#为什么不适合桌面开发 netcore路由器怎么设置无线网络 netcore.exe是什么cpu使用率高 404 Not Found netcore 2805NR 怎么开FTP 跟远程桌面端口? 手机连接无线网络为什么老是显示密码不正确 9C:E3:3F:5A:3D:4E和90:3A:E6:27:FA:58蓝牙版本可以连接吗? KENWOOD TH-28A频率能再改写吗? 404 Not Found 关于用wifi延迟高,请问怎么解决 FAST无线路由器falongin,cn是什么意思 WIFI+是什么 双频wifi关掉5g后2.4g信号会增强吗? 什么是无线WIFI、HOTSPOT(无线热点)? LTE中F频段和D频段有什么区别 人耳能听到的声音频率在2Hz—20Hz之间,普通语音信号频率在3KHz—4KHz。 那音乐的频率范围是多少呢? 中国联通wcdma频率多少? wifi信号的频率是多少 华为多通道FA频段DRRU3168-fa载波的多模,双模是什么意思? netcore磊科NS105 交换机要连接多台电脑怎么做? 404 Not Found netcore nr205+ 磊科路由器怎么看有几个人在用 404 Not Found 磊科NW336无线网卡的CentOS驱动怎么安装?!!! 磊科usb网卡驱动程序弹不出 求磊科nw715p无线路由器调试方法 磊科路由器怎么用手机设置 netcore 2005nr怎么建局域网 NSA2860功耗 Intel 酷睿i7 2860QM和Intel 酷睿i7 2640M那个好? Ralink RT2860 Wireless LAN Card是什么 404 Not Found 404 Not Found NVinject、NVDarwin和NVinjectGO指的是什么意思? 华硕A43EI241SV-SL可以升级cpu吗?可以升级到i7-2670qm或者i7-2860qm吗 华为EC150是什么芯片,速度怎么样 华硕HM65芯片组 支持i7 cpu吗 能的话 说个型号 Intel QM67 可以装什么处理器
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com