一些示例代码:
var psi = new ProcessStartInfo();
psi.FileName = "path to update.exe";
psi.Arguments = "arguments for update.exe";
psi.Verb = "runas";
var process = new Process();
process.StartInfo = psi;
process.Start();
process.WaitForExit();
参考: 0xA3。
在代码中以编程方式在可能的情况下将哪些类型的对象传入'.Arguments'属性?通常,您可以传递int或字符串类型。我想知道你是否可以传递更复杂的类型,如DirectoryInfo []或FileInfo []?有谁知道这是否可能?如果不是,我将不得不拿出别的东西?
为什么呢?我试图从一个非常大的后台工作者中删除一些问题代码,唯一的解决方案是将我需要的数据传递给一个进程,该进程将处理我需要在一个完整的不同进程中完成的工作。问题此问题代码总是会引发权限 - 应用程序没有的权限。
答案 0 :(得分:1)
序列化数据然后您可以将结果字符串“管道”到另一个进程的标准输入中。请参阅http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardinput.aspx
序列化数据,存储到文件中,然后让其他进程读取此文件,将路径传递给Arguments中的文件。
- 将对象分配到全局内存中,然后将生成的IntPtr在Arguments中传递给另一个进程。
答案 1 :(得分:0)
如果从命令提示符运行.exe,则参数正是您键入的内容(带有前导和尾随引号)。
使用字符串。
答案 2 :(得分:0)
答案 3 :(得分:0)
不,这是不可能的。
您应该考虑在现有流程中创建一个新的AppDomain。