private void startProc(object state)
{
try
{
//TODO: Consider capturing the Process Output directly and having the parser work
// from a string instead of a StreamReader, or converting the string to a
// StreamReader
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 (and that we have rights to the file)
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();
// TODO: Verify exit code if the CLI supports it properly
}
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());
}
}
Fragment for Main's Experation time code:
// Development Code Expiry.
// Remember to comment out on public release!!!
if (DateTime.Now > DateTime.Parse("2/1/2008")) { MessageBox.Show("Sorry, This development build of Handbrake has expired."); return; }