private void startProc(object state) { try { string handbrakeCLIPath = Path.Combine(Application.StartupPath, "HandBrakeCLI.exe"); string dvdInfoPath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"Temp\dvdinfo.dat"); // Make we don't pick up a stale dvdinfo.dat if (File.Exists(dvdInfoPath)) File.Delete(dvdInfoPath); string strCmdLine = String.Format(@"cmd /c """"{0}"" -i ""{1}"" -t0 -v >""{2}"" 2>&1""", handbrakeCLIPath, inputFile, dvdInfoPath); using (Process hbproc = Process.Start("CMD.exe", strCmdLine)) { hbproc.WaitForExit(); } if (!File.Exists(dvdInfoPath)) { throw new Exception("Unable to retrieve the DVD Info. dvdinfo.dat missing."); } using (StreamReader sr = new StreamReader(dvdInfoPath)) { thisDvd = Parsing.DVD.Parse(sr); } updateUIElements(); } catch (Exception exc) { MessageBox.Show("frmReadDVD.cs - startProc " + exc.ToString()); } }