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循环中重用它?
谢谢
如果您不希望运行代码的程序的每个文件都被询问,则必须是管理员。通过添加清单文件并将requestedExecutionLevel
标记设置为
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
就像别人在注释中解释的那样,除非程序被设计成在一次命令行调用中接受多个文件扫描,否则在您自己的代码中对此无能为力。
我要做的,我会找到scan.exe的参考手册,并找出是否可以调用它,传递给它一个文件名,该文件将包含要扫描的文件列表。
因为你没有提供确切的产品版本,我只能猜测。根据这个链接,scan.exe接受一个CHECKLIST
参数:
/CHECKLIST=<filename> Scan list of files contained in <filename>.
再次,我不知道这是否适用于你的特定版本的scan.exe,但你可以找到,我敢肯定;-)
欢呼