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

如何从应用执行EXE并让其调用应用函数?C#脚本交互可行性问询

需求可行性分析与实现方案

你的两个需求在技术上都完全可行,具体实现思路如下:

一、辅助进程脚本与主应用交互、调用内部方法

核心是通过**进程间通信(IPC)**结合公共契约接口实现,步骤如下:

  • 定义公共契约:将主应用需要对外暴露的方法抽象成接口,放到一个独立的类库项目中(主应用和辅助进程都引用这个类库),接口仅包含方法签名,不涉及具体实现。
  • 选择IPC通信方式:
    • WCF:适合复杂的远程调用场景,可直接通过接口生成代理类,辅助进程能像调用本地方法一样调用主应用的接口实现。主应用配置好WCF服务端点,辅助进程通过端点地址连接即可。
    • 命名管道(Named Pipes):轻量高效的本地IPC方案,主应用作为服务端监听指定管道,辅助进程作为客户端发送调用请求,主应用处理后返回结果。
    • TCP套接字:适用于跨机器场景,本地通信优先选命名管道。
  • 主应用实现契约接口:将内部方法的逻辑封装到接口实现类中,通过IPC通道对外暴露。辅助进程通过IPC调用接口方法,间接触发主应用的内部逻辑。
  • 注意:如果主应用的内部方法涉及UI操作,需切换到UI线程执行(如WPF用Dispatcher.Invoke,WinForms用Control.Invoke),避免线程异常。

二、主应用启动EXE并让其调用主应用函数

本质是反向的IPC调用,主应用作为服务端,启动的EXE作为客户端,步骤如下:

  • 复用公共契约接口:将主应用允许外部调用的函数抽象成接口,放到共享类库中,EXE需引用该类库。
  • 主应用启动IPC服务端:在启动EXE前,先启动命名管道/WCF服务端,监听客户端连接。
  • 传递IPC通道信息:启动EXE时,通过命令行参数将IPC通道标识(如管道名称、WCF端点地址)传递给EXE,让EXE知道如何连接主应用。
  • EXE发起IPC调用:EXE启动后,根据参数连接主应用的IPC服务端,通过代理类调用接口方法,主应用处理请求并返回结果。
  • 补充:如果是第三方EXE,无法直接集成IPC逻辑,可考虑进程注入或钩子技术,但这类方案复杂度高且稳定性差,优先使用可控的自研EXE+IPC方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:05:20