UWP 调用Win32 关机

话说最近程序需要个晚上自动关机的功能

原则上 uwp 应该是没有关机权限的

上网搜索之

有人说只要这样就可以了

var psi = new ProcessStartInfo("shutdown", "/s /t 0");
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
Process.Start(psi);

但是使用这个必须要用 Brokered UWP Component Project Templates:

https://marketplace.visualstudio.com/items?itemName=LanceContreras.BrokeredUWPComponentProjectTemplates

这个 Templates 是 vs2015 的

不过我的是 vs2017

而且代码已经很多了,从头开始肯定不行

但是在 VS2017 下,现在可以直接调用 Win32 程序

在这里就可以调用 Win32 来进行关机

首先随便写个关机的程序

比如我们直接开个控制台程序,写上:

        static void Main(string[] args){Process.Start("shutdown.exe", "-s -f -t 100");}

设置程序开启后100秒关机 (话说设置100秒主要为了调试方便,只要运行 shutdown –a 就可以取消关机任务)

编译后生成 ConsoleShutdown1.exe

我们把文件拷贝到uwp的目录下面

我单独建了个文件夹,把exe文件包含到项目中:

然后我们添加引用 “ Windows Desktop Extensions For The UWP ”,添加那个版本看自己的项目需要了,我项目的目标版本直接就是1709,所以直接引用最新版的扩展。

(注意要在 UWP 中调用 Win32 程序,Windows Desktop Extensions For The UWP 的最低版本为 14393,也就是说对方的win10最低也要为1607)

然后我们需要编辑 Package.appxmanifest 文件

直接查看代码:

在 Package 节点上,我们要加上 rescap 和 desktop 的引用,注意下面的 IgnorableNamespaces 要加上rescap ,不然你生成应用程序包的时候可以会提示配置文件错误。

<Packagexmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"IgnorableNamespaces="uap mp rescap">

然后修改 Capabilities 节点,加上 <rescap:Capability Name="runFullTrust"/>

  <Capabilities><Capability Name="internetClient" /><rescap:Capability Name="runFullTrust"/></Capabilities>

最后在 Application 节点中加入 Extensions 节点,里面包含我们的 Win32 程序在项目中的路径

  <Applications><Application Id="App"Executable="$targetnametoken$.exe"EntryPoint="AppShutdown1.App"><uap:VisualElementsDisplayName="AppShutdown1"Square150x150Logo="Assets\Square150x150Logo.png"Square44x44Logo="Assets\Square44x44Logo.png"Description="AppShutdown1"BackgroundColor="transparent"><uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/><uap:SplashScreen Image="Assets\SplashScreen.png" /></uap:VisualElements><Extensions><desktop:Extension Category="windows.fullTrustProcess" Executable="Exe\ConsoleShutdown1.exe" /></Extensions></Application></Applications>

基本就大功告成了

下面就是在需要调用 Win32 程序的地方 写上:

await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();

就可以在UWP 中调用 Win32 程序了

这里我就可以调用 shutdown 来关机

而且即使在  “设置分配的访问权限” 下,也是可以正常调用 Win32程序 的

此外在调用 Win32 程序的时候还可以加参数(如果 Win32 程序支持的话)

更多见: https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.fulltrustprocesslauncher

作者:sun8134
出处:http://sun8134.cnblogs.com/
空间:http://sun8134.spaces.live.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

分类: UWP,c#
本文转自 sun8134 博客园博客,原文链接: http://www.cnblogs.com/sun8134/p/8429199.html  ,如需转载请自行联系原作者

sun8134的Blog相关推荐

  1. https://blog.csdn.net/blmoistawinde/article/details/84329103

    背景     很多场景需要考虑数据分布的相似度/距离:比如确定一个正态分布是否能够很好的描述一个群体的身高(正态分布生成的样本分布应当与实际的抽样分布接近),或者一个分类算法是否能够很好地区分样本的特 ...

  2. 欢迎大家批评:CSDN Blog用户体验调查

    CSDN   Blog自2004年7月上线以来,得到了各位用户的大力支持,已经成为大家发表专业技术文章和进行技术交流的园地.为了给各位作者和读者提供更好的服务,我们组织了这次用户问卷调查,希望大家能够 ...

  3. 测一测你的blog魔症有多严重

    测一测你的blog魔症有多严重 在Donews.net那里看到了这个有趣的测试:Are You a Blogaholic? 用来测试你对Blog的迷恋程度. 下面是我的得分与评价: 14058 peo ...

  4. 为什么不提供离线Blog管理工具呢?

    网络Blog现在是到处开花, 好像全世界的网民都开始写Blog了. 但因为Web的HTTP无状态协议, 网站本身都自己设置有session过期时间. 如果写的Blog文字多,时间一长用户登录状态就没了 ...

  5. 2010年9月blog汇总:敏捷个人和模型驱动开发

    9月份指标产品开发开始同时进行两个客户的开发,所以考虑了客户化如何开发的问题:在企业定额产品上,参与清单综合单价库的产品架构并做了用户调研前期准备工作:再就是整理了一下模型驱动开发理论以及思考了Ope ...

  6. 2010年5月blog汇总:OpenExpressApp、其他

    OpenExpressApp 信息系统开发平台OpenExpressApp - 框架待完善工作事项 信息系统开发平台OpenExpressApp - 报表模块支持ReportObjectView 信息 ...

  7. JakartaEE Exception: Invalid bound statement (not found): com.mazaiting.blog.dao.UserDao.selectUs...

    异常 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.mazaiting.bl ...

  8. 刚申请了Blog,首贴庆祝!

    刚申请了Blog,首贴庆祝! 转载于:https://www.cnblogs.com/ele-eye/archive/2011/11/17/2252654.html

  9. 『03网络』 实验一:多功能浏览器的使用和个人Blog的创建和使用

    实验一:多功能浏览器的使用和个人Blog的创建和使用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office: ...

最新文章

  1. 全向飞行器的设计与制作-学生初步汇报内容
  2. django request对象和HttpResponse对象
  3. java基础01-java历史
  4. 高德地图只显示某个省份
  5. 最新手机号段归属地数据库 高性能dat解析
  6. TVS防护电路的典型应用
  7. PowerDesigner修改设置表格背景色
  8. python求三角形的角度
  9. C# 通过126邮箱发送邮件
  10. VIM复制粘贴 的快捷键是什么
  11. 小浩编程:指针函数和函数指针
  12. 公众号模板消息发送限制
  13. [1927-2011][影片][历届奥斯卡最佳影片合集][全82部]
  14. Scrum 项目6.0-展示Sprint回顾的过程及成果。
  15. 行为分析(十):姿态估计部分(六):人体关键点(keypoints)生成算法综述
  16. 倍加福PVS58N-011AGR0BN-0013编码器
  17. pandas金融数据处理
  18. matlab-diary函数用法之一
  19. EAGLE PCB设计软件介绍
  20. 百度直播古物潮玩闪电购怎么认证

热门文章

  1. JSon转化为DaTable
  2. Windows 记事本的 Bug :-)
  3. nginx开启支持websocket连接
  4. 数据库-表记录增删改
  5. 数据库-子查询概念和分类
  6. python的回收机制_Python的垃圾回收机制深入分析
  7. android制作下拉选择_Excel制作一、二、三级下拉菜单技巧,你一定不能错过
  8. 尾调用优化 java_基于Java8函数式编程求一个List的全部子集|尾调用优化解决递归性能问题...
  9. 软件测试技巧|软测经典面试题(二)
  10. 函数栈帧的创建和销毁图解