C#启动进程多次

时间:2015-10-20 23:18:23

标签: c# process process.start

我有一个基于Windows的C#应用​​程序,它调用一个外部scan.exe文件来扫描一个目录。

在代码下方,我会进行流程调用:

Process p = new Process();
p.StartInfo.FileName = @"Scan.exe";
foreach (FileInfo file in fileList)
{
    p.StartInfo.Arguments = @" /ALL /ARCHIVE " + file.FullName;
    p.Start();
    //System.Threading.Thread.Sleep(200);
}

当我运行它时,弹出Scan.exe文件(带有UAC窗口)并传入每个文件名。据说,在列表中有六个文件,scan.exe会弹出6次。

有没有办法可以打开创建一个进程并在for循环中重用它?

由于

2 个答案:

答案 0 :(得分:1)

如果您不希望被要求提供每个文件,则运行您的代码的程序必须是管理员。您可以自动提示管理员by adding a manifest file并将requestedExecutionLevel标记设置为

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

答案 1 :(得分:0)

就像其他人的评论所解释的那样,除非程序设计为接受多个文件在一个命令行调用上进行扫描,否则你无法在自己的代码中对它进行任何操作。

我会做什么,我会找到scan.exe的参考手册,并找出是否可以调用它,传递一个文件名,哪个文件包含要扫描的文件列表。

由于您未提供确切的产品版本,我只能猜测。根据此link,scan.exe接受CHECKLIST参数:

/CHECKLIST=<filename>   Scan list of files contained in <filename>.

同样,我不知道这是否适用于您特定版本的scan.exe,但您可以找到,我很确定; - )

干杯