You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从UWP应用启动CMD.exe执行命令行打开打印首选项UI

UWP两项开发需求实现方案

UWP默认运行在AppContainer沙箱环境下,默认权限无法直接拉起桌面端可执行文件,两个需求都需要依托全信任进程能力实现,具体方案如下:

1. 应用内启动CMD.exe

  • 前置配置:项目目标版本需不低于Windows 10 1809(10.0.17763),右键打开Package.appxmanifest代码视图,先在Package根节点添加桌面扩展命名空间,再配置全信任进程扩展指向CMD路径,核心配置片段如下:
<Package
  ...
  xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
  IgnorableNamespaces="uap mp desktop">
  ...
  <Applications>
    <Application ...>
      <Extensions>
        <desktop:Extension 
          Category="windows.fullTrustProcess" 
          Executable="C:\Windows\System32\cmd.exe" />
      </Extensions>
    </Application>
  </Applications>
</Package>
  • 调用逻辑:在需要触发启动的业务代码中,直接调用官方提供的全信任进程启动API即可:
using Windows.ApplicationModel;
// 无参数启动CMD
await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();

// 带参数启动CMD,例如执行指定命令后自动关闭
string cmdArgs = "/c ipconfig";
await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync(cmdArgs);
  • 注意事项:如果UWP项目编译目标为x86架构,访问64位系统System32目录下的CMD会被系统自动重定向到SysWOW64路径下的32位CMD,需要将路径替换为C:\Windows\Sysnative\cmd.exe绕过重定向。

2. 唤起打印首选项UI

该能力可以直接复用上述全信任进程的命令行传参能力实现,不需要额外配置新能力:

  • 系统原生提供了通过命令行唤起指定打印机首选项UI的入口,对应命令为rundll32 printui.dll,PrintUIEntry /e /n "目标打印机全称",只需要把该命令作为参数传给CMD启动即可。
  • 调用示例代码:
// 替换为你要唤起首选项的打印机名称
string targetPrinterName = "Microsoft Print to PDF";
string cmdArgs = $"/c rundll32 printui.dll,PrintUIEntry /e /n \"{targetPrinterName}\"";
await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync(cmdArgs);
  • 可选优化方案:如果需要更稳定的调用、拿到UI关闭后的回调,可以单独开发一个轻量Win32控制台程序作为全信任代理,UWP把打印机名称通过应用服务或者命令行参数传给代理程序,由代理程序调用DocumentProperties Win32 API唤起打印首选项UI,避免直接调用CMD带来的命令行转义、黑窗闪烁问题。

注意事项:

  • 配置了windows.fullTrustProcess能力的应用如果要上架Microsoft Store,需要提前提交受限能力使用申请,企业内部侧载部署的应用无此限制。
  • 沙箱会直接拦截Process.Start这类传统桌面端进程启动API,不要尝试直接用该方法启动CMD或其他EXE,会抛出权限不足异常。
  • 唤起打印首选项前建议先通过UWP自带的PrintManagerAPI枚举系统已安装打印机列表,校验目标打印机存在后再调用,避免命令执行无响应。

内容的提问来源于stack exchange,提问作者Samyraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 11:51:24