c#多次启动进程

本文关键字:进程 启动 | 更新日期: 2023-09-27 18:18:32

我确实有一个基于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窗口)与传入的每个文件名。据说,在列表中,有6个文件,scan.exe弹出6次。

是否有一种方法可以打开创建一个进程并在for循环中重用它?

谢谢

c#多次启动进程

如果您不希望运行代码的程序的每个文件都被询问,则必须是管理员。通过添加清单文件并将requestedExecutionLevel标记设置为

,可以使程序自动提示管理员。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

就像别人在注释中解释的那样,除非程序被设计成在一次命令行调用中接受多个文件扫描,否则在您自己的代码中对此无能为力。

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

因为你没有提供确切的产品版本,我只能猜测。根据这个链接,scan.exe接受一个CHECKLIST参数:

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

再次,我不知道这是否适用于你的特定版本的scan.exe,但你可以找到,我敢肯定;-)

欢呼