我想从另一个实用程序应用程序启动我的应用程序并传递一个参数。最简单的解决方案:
System.Diagnostics.Process.Start(appPath, param);
... 不是一个选项,因为我想阻止其他人向应用程序提供参数。换句话说:我想从我的实用程序应用程序仅启动我的应用程序。
如何实现?
谢谢, 莱塞克
最佳答案
如果您(出于安全原因)不想传递有意义的参数来启动您的主程序,那么您可以使用匿名管道(从 Net 4 开始)
基本上你遵循这个伪代码
- 在实用程序中,创建匿名管道并启动传递管道句柄的主程序。
- 主程序使用传入的句柄监听匿名管道
- 实用程序使用匿名管道发送消息
Here you can find a detailed example
这样,从实用程序传递到主程序的参数代表匿名管道,但其他程序或用户无法轻易伪造主程序。如果您在这个场景中添加两个程序之间的某种形式的 secret 握手,您将获得强大的保护。
关于c# - 将参数传递给 EXE 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828060/