有关ProcessStartInfo类和Argument属性的问题?

时间:2010-08-07 19:01:53

标签: c# winforms .net-3.5 process backgroundworker

一些示例代码:

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 []?有谁知道这是否可能?如果不是,我将不得不拿出别的东西?

为什么呢?我试图从一个非常大的后台工作者中删除一些问题代码,唯一的解决方案是将我需要的数据传递给一个进程,该进程将处理我需要在一个完整的不同进程中完成的工作。问题此问题代码总是会引发权限 - 应用程序没有的权限。

4 个答案:

答案 0 :(得分:1)

- 将对象分配到全局内存中,然后将生成的IntPtr在Arguments中传递给另一个进程。

答案 1 :(得分:0)

如果从命令提示符运行.exe,则参数正是您键入的内容(带有前导和尾随引号)。

使用字符串。

答案 2 :(得分:0)

根据定义,Arguments属性的类型为string,因此您只能将空格分隔的参数传递给进程,就像在命令行中调用它一样。

答案 3 :(得分:0)

不,这是不可能的。

您应该考虑在现有流程中创建一个新的AppDomain。

相关问题