OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / Functions / CLI.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Threading;\r
4 using System.Diagnostics;\r
5 using System.Windows.Forms;\r
6  \r
7 \r
8 namespace Handbrake.Functions\r
9 {\r
10     class CLI\r
11     {\r
12         Process hbProc = new Process();\r
13         \r
14         public Process runCli(object s, string query, bool stderr, bool stdout, bool useShellExec, bool noWindow)\r
15         {\r
16             hbProc.StartInfo.FileName = "hbcli.exe";\r
17             hbProc.StartInfo.Arguments = query;\r
18             hbProc.StartInfo.RedirectStandardOutput = stdout;\r
19             hbProc.StartInfo.RedirectStandardError = stderr;\r
20             hbProc.StartInfo.UseShellExecute = useShellExec;\r
21             hbProc.StartInfo.CreateNoWindow = noWindow;\r
22             hbProc.Start();     \r
23 \r
24             // Set the process Priority\r
25             switch (Properties.Settings.Default.processPriority)\r
26             {\r
27                 case "Realtime":\r
28                     hbProc.PriorityClass = ProcessPriorityClass.RealTime;\r
29                     break;\r
30                 case "High":\r
31                     hbProc.PriorityClass = ProcessPriorityClass.High;\r
32                     break;\r
33                 case "Above Normal":\r
34                     hbProc.PriorityClass = ProcessPriorityClass.AboveNormal;\r
35                     break;\r
36                 case "Normal":\r
37                     hbProc.PriorityClass = ProcessPriorityClass.Normal;\r
38                     break;\r
39                 case "Low":\r
40                     hbProc.PriorityClass = ProcessPriorityClass.Idle;\r
41                     break;\r
42                 default:\r
43                     hbProc.PriorityClass = ProcessPriorityClass.BelowNormal;\r
44                     break;\r
45             }\r
46             return hbProc;\r
47         }\r
48 \r
49         public void killCLI()\r
50         {\r
51             try\r
52             {\r
53                 hbProc.Kill();\r
54             }\r
55             catch (Exception)\r
56             {\r
57                 // No need to do anything. Chances are the process was already dead.\r
58             }\r
59         }\r
60 \r
61         public void closeCLI()\r
62         {\r
63             hbProc.Close();\r
64             hbProc.Dispose();\r
65         }\r
66     }\r
67 }\r