为什么在编码的UI应用程序中使用startinfor为bat文件启动错误

时间:2015-05-11 00:51:00

标签: c# unit-testing coded-ui-tests

我尝试使用ProcessStartInfo的应用程序启动方法,但没有运气。我试图执行一个快捷方式的bat文件。这是我试过的:

string myfile = @"\\jcbestbadev01\FSBATest\FSBATest.bat";

var startInfo = new ProcessStartInfo(myfile);
startInfo.UseShellExecute = true;

ApplicationUnderTest cmdApplication = ApplicationUnderTest.Launch(startInfo );

那没有用。

我也尝试了这个:

StreamReader SR = new StreamReader(myfile);
string strFileText= SR.ReadToEnd();
SR.Close();
SR.Dispose();

ProcessStartInfo processInfo;
Process process;

processInfo = new ProcessStartInfo("C:\\Windows\\System32\\cmd.exe ", "/c " + strFileText);
processInfo.UseShellExecute = true;

那也没有用。我一直收到错误:

  

无法启动应用程序。这可能是由于以下原因之一:
  1)应用程序的另一个实例已在运行,一次只能运行一个实例   2)应用程序启动了另一个进程,现在已停止。您可能需要直接启动该过程   3)您没有足够的权限使用此应用程序。

对于我的第一个解决方案,即使它已经执行并打开了应用程序,它仍会启动并仍然会抛出错误。最后一个解决方案,它会引发错误。

有人能告诉我为什么即使在执行并运行文件后它也会抛出错误吗?

1 个答案:

答案 0 :(得分:2)

您似乎无法使用应用程序启动来使用批处理文件设置启动快速一次应用程序。

我最终使用下面的代码,只是启动了该bat文件的进程。希望这有助于某人。

        string myfile = @"\\jhqfsbadev01\FSBATest\FSBATest.bat";
        System.Diagnostics.Process.Start(myfile);