Lagrar saker som skall köras i en XML-fil. Kan vara bat-filer eller en exe-fil med vissa argument som skall köras. En av bat-filerna utför även en uppgift på en annan server (stoppar/startar en viss tjänst). Har jag förklarat mig luddigt? Enligt http://www.ragingsmurf.com/code.aspx?key=2HNF3ZT5C7 ser det ju rätt ut...=/ Det kan inte bero på att det är en bat-fil? Har du testat att anropa själva programmet direkt? Kan nog bero på att det är en bat-fil.Vänta på att en Process blir färdig...?
Problemet med jag har är att ta reda på om en, exempelvis, en bat-fil fortfarande körs. Alltså, det bat-filen utför kan i sin tur ta lite tid, säg uppåt 10-20 sekunder. Som det nu är kodat så kör programmet vidare med nästa process trots att den första processen (bat-filen) fortfarande jobbar med något.
Jag vill kunna vänta på att en process/körning blir klar innan nästa körs (dvs nästa steg i 'foreach' loopen).
public void runJoblist()
{
System.Diagnostics.Process _proc; // New Process
System.Diagnostics.ProcessStartInfo _procInfo = new ProcessStartInfo();
foreach (JoblistInfo p in _joblist)
{
//textBox1.Text += p.Name + "........";
if (p.Started == false)
{
try
{
_procInfo.WorkingDirectory = p.Path; // Ex. c:\temp
_procInfo.FileName = p.File; // Ex. myfile.bat, filex.exe
_procInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; // Hide window
_procInfo.UseShellExecute = true;
if (p.Arguments.Length > 0)
{
_procInfo.Arguments = p.Arguments; // Ex. -X -Y
}
_proc = System.Diagnostics.Process.Start(_procInfo); // Start the process
_proc.WaitForExit();
}
(Exception e)
{
textBox1.Text = p.Name + ": " + e.Message;
}
}
//_procInfo = null;
}
}
Sv: Vänta på att en Process blir färdig...?
Jag tror fortfarande att "WaitForExit" skall användas, fast på ett annat sätt. Har inte full koll på koden ännu så jag har säkert byggt fel.Sv: Vänta på att en Process blir färdig...?
/JohanSv:Vänta på att en Process blir färdig...?
I övrigt funkar allt nu...men
I det här fallet gäller det att stoppa en viss service på en annan server, så att anropa själv programmet vill jag inte göra (om det ens går?). Har även testat med kommandot "sc.exe". Dvs. ett kommande typ: sc \\minserver stop "Min Windows Tjänst".
Det funkar också. Tjänsten stoppas. Men "WaitForExit" fattar inte att själva stoppa förloppet tar ca 10-15 sekunder att genomföra.