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

UWP与全信任进程IPC:如何传递动态命名管道名称至主方法?

解决UWP向全信任进程传递动态命名管道名称的问题

核心方案:通过FullTrustProcessLauncher的重载方法传递命令行参数

UWP的FullTrustProcessLauncher提供了带参数的启动方法,直接把动态生成的管道名称作为命令行参数传给全信任进程即可,具体步骤如下:

1. UWP端生成管道名称并启动全信任进程

先动态生成包含AppName和GUID的管道名称,然后调用带参数的启动方法传递该名称:

// 生成动态管道名称
string appName = "YourAppName";
string pipeName = $"{appName}-{Guid.NewGuid().ToString("N")}";

// 启动全信任进程并传入管道名称参数
await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync(pipeName);

2. 全信任进程读取命令行参数并启动管道服务器

在全信任进程的Main方法中,直接从参数数组获取管道名称,再初始化管道服务器:

static void Main(string[] args)
{
    // 校验参数是否存在
    if (args.Length == 0)
    {
        Console.WriteLine("未获取到管道名称参数");
        return;
    }

    string pipeName = args[0];
    // 启动命名管道服务器监听请求
    StartPipeServer(pipeName);
}

// 管道服务器启动示例逻辑
static void StartPipeServer(string pipeName)
{
    using (var pipeServer = new NamedPipeServerStream(pipeName, PipeDirection.InOut, 1, PipeTransmissionMode.Byte))
    {
        pipeServer.WaitForConnection();
        // 后续IPC通信逻辑...
    }
}

注意事项

  • 管道名称避免特殊字符:因为命令行参数默认以空格分隔,AppName+GUID的格式一般不会有问题,若需包含特殊字符,要对参数做转义处理。
  • 确认全信任进程配置:确保UWP应用的Package.appxmanifest中已正确配置windows.fullTrustProcess扩展,保证进程能被正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:37:06