У меня есть кнопка в winforms, необходимая для запуска командного файла и открытия exe (monitor.exe
) файла при нажатии.Фрагмент командного файла: -
@echo on
rem @echo $Id: runnit_navigator.bat,v X.X XXXX/XX/XX XX:XX:XX sxxxaxx Exp $
echo Running runnit_monitor.bat >%TEMP%\runnit_monitor.log
if exist "%CD%\Config.bat" (
call Config.bat >>%TEMP%\runnit_monitor.log
)
if "%1%" NEQ "" (
set SPACE_SITE=%1%
)
@set monitor_start=Y
rem if not defined SPACE_CONFIG (
rem set SPACE_CONFIG=%TEMP%
rem )
if not exist "%PROGRAMDATA%\space\config\%SPACE_SITE% \monitor.properties" (
set SPACE_SITE=NA
)
if "%SPACE_SITE%" EQU "NA" (
call "%SPACE_HOME%\Runnit\runnit_site_monitor.bat" >>%TEMP%\runnit_monitor.log
exit
)
set SPACE_SETTINGS=%PROGRAMDATA%\space\config\%SPACE_SITE%
@set JAVA_EXE=%LoginDialogJavaHome%\bin\monitor.exe
Я пробовал этот код, без ошибок, но исполняемый файл вообще не открыт.
Process proc = new Process();
private void btn1_Click(object sender, EventArgs e)
{
try
{
string batDir = string.Format(@"C:\Program Files\Space\Runnit\");
proc.StartInfo.WorkingDirectory = batDir;
proc.StartInfo.FileName = "runnit_monitor.bat";
proc.StartInfo.CreateNoWindow = false;
proc.Start();
proc.WaitForExit();
proc.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace.ToString());
}
}
Кроме того, это вывод длякод выше.После того, как это окно выскочило, ничего не произошло.Но, поставив точку останова, я вижу, что некоторые свойства Process
возвращают исключение.
Неправильно ли я назвал процесс?Или какие-либо предположения о том, что я могу понять / сделать, чтобы заставить monitor.exe
работать после чтения командного файла?