UWP 调用Win32 关机

简介: 原文:UWP 调用Win32 关机话说最近程序需要个晚上自动关机的功能 原则上 uwp 应该是没有关机权限的 上网搜索之 有人说只要这样就可以了 var psi = new ProcessStartInfo("shutdown", "/s /t 0"); psi.
原文: 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文件包含到项目中:

image

 

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

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

image

 

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

直接查看代码:

image

 

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

<Package
  xmlns="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:VisualElements
        DisplayName="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程序 的

image

 

 

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

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

目录
相关文章
|
传感器 存储 数据采集
04 深度解析物联网架构与技术应用于农业大棚系统
本文将深入探讨物联网架构在农业大棚系统中的应用,从设备接入、边缘网关、数据传输到云平台和应用平台,逐层解析其技术应用与通信协议,为读者全面呈现物联网在农业领域的实际运用场景。
767 0
|
5月前
|
人工智能 监控 JavaScript
CRM系统销售管理全流程解析:从MTL到RMS的数字化转型指南
在数字化转型浪潮下,CRM系统中的销售管理已成为企业增长的核心引擎。纷享销客以“全流程覆盖+智能化驱动+行业化适配”为核心,构建涵盖MTL、L2O、CPQ、RMS的端到端销售闭环,并深度融合AI技术,打造销售Agent生态,实现线索转化、客户洞察、报价履约等全场景智能赋能。通过MCR大客户管理体系,推动从短期成交向长期价值经营转型。其三层架构支持灵活定制与生态集成,已在智能制造、食品饮料、医疗健康等行业落地,助力神策数据、拓斯达、一舟股份等企业实现销售效率与战略协同的双重提升。未来,销售管理将迈向更智能、更协同、更个性化的新阶段,纷享销客持续以AI驱动企业可持续增长。
|
8月前
|
Web App开发 人工智能 自然语言处理
快速掌握Dify+Chrome MCP:打造网页操控AI助手
本文教你如何快速搭建一个能操作浏览器的AI助手:通过Dify和Chrome MCP结合,只需三步配置,即可实现自动填表、数据抓取和网页操控,无需编写代码,用自然语言就能指挥AI完成各类网页任务。
|
Go Windows
mac系统快捷键大全详细介绍
mac系统快捷键大全详细介绍
1367 153
|
Java 测试技术 数据库
基于SpringBoot+HTML实现登录注册功能模块
基于SpringBoot+HTML实现登录注册功能模块
|
缓存 关系型数据库 数据库
PostgreSQL的性能
PostgreSQL的性能
859 2
|
Kubernetes Linux 虚拟化
一文详解容器技术简介和基本原理
本文全面阐述了容器技术的发展历程、关键技术、架构和当前的行业生态,特别是容器技术在云环境中的应用和演进。
8010 9
|
Kubernetes Java 索引
Elasticsearch 源码探究 001——故障探测和恢复机制
Elasticsearch 源码探究 001——故障探测和恢复机制
|
小程序 JavaScript Java
健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)
健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)
543 0
|
前端开发 UED
【专栏:CSS 基础篇】CSS 字体与文本样式:美化你的网页内容
【4月更文挑战第30天】网页设计中,字体和文本样式至关重要,影响视觉效果和用户体验。CSS允许设计师设置字体家族、大小、颜色、加粗、倾斜、行高和对齐方式等。高级特性包括引入外部字体和使用字体变体。响应式设计适应不同设备,确保良好阅读体验。实际案例和最佳实践强调易读性和一致性。掌握这些技巧能提升网页美感和用户交互,创造更多可能。
684 0

热门文章

最新文章