Hej.
Jeg har et listview og jeg vil gerne loope det igennem, og for hver linje lave et CMD kald, men er nød til at vide hvornår kaldet er færdigt så den kan starte den næste
har prøvet med:
proc.Exited += callback;
- public void ExecuteCommandSync(object command, EventHandler callback = null)
- {
- try
- {
- System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
- procStartInfo.RedirectStandardOutput = true;
- procStartInfo.UseShellExecute = false;
- procStartInfo.CreateNoWindow = true;
- System.Diagnostics.Process proc = new System.Diagnostics.Process();
- proc.StartInfo = procStartInfo;
- if(callback != null)
- {
- proc.Exited += callback;
- }
- proc.Start();
- string result = proc.StandardOutput.ReadToEnd();
- }
- catch (Exception objException)
- {
- MessageBox.Show(objException.Message);
- }
- }
-
- private void validate(string _file)
- {
- string appPath = Path.GetDirectoryName(Application.ExecutablePath);
- FileInfo file = new FileInfo(_file);
- string cmdLine = "ffmpeg.exe -v error -i \"" + file.FullName + "\" -f null - > \"" + appPath + "\\data\\logs\\" + file.Name + ".log\" 2>&1";
- ExecuteCommandSync(cmdLine, new EventHandler(myProcess_Exited));
- }
-
- private void myProcess_Exited(object sender, EventArgs e)
- {
- MessageBox.Show("FFmpeg afsluttet");
- }
edit: hov kan se det ene tag blev til "processor" skulle have været "process"
Indlæg senest redigeret d. 25.07.2013 12:30 af Bruger #3427