我有一个场景,我必须创建一个 Windows 服务,该服务将检查批处理文件是否未运行,那么它应该执行该批处理文件。
此外,我的批处理文件用于使用 Selenium 进行应用程序检出自动化。
当我创建该服务时,不知何故批处理文件没有执行并且无法启动硒。当我在任务管理器中看到相同的内容时,我可以看到一个 cmd 实例正在运行,但它无法运行我的 selenium。
我的项目代码:计时器设置为 1 分钟
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (!File.Exists(ConfigurationManager.AppSettings["testFilePath"])) //To check whether batch file is running or not
{
System.Diagnostics.Process proc = new System.Diagnostics.Process(); // Declare New Process
proc.StartInfo.FileName = ConfigurationManager.AppSettings["BatchFilePath"];
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
}
}
批处理文件是这样的:
copy C:\AutomatedTests\AHD\testingWS.txt C:\AutomatedTests\AHD\AHDExecutionService\testingWS.txt
start cmd /k java -jar "C:\AHS_Automation\Release\UnifiedBillingSystem\Selenium RC\selenium-server-1.0.3\selenium-server.jar"
此代码将定期检查如果批处理文件未在执行中,那么我的服务将开始执行,否则将不执行任何操作。