+/* Program.cs \r
+ \r
+ This file is part of the HandBrake source code.\r
+ Homepage: <http://handbrake.m0k.org/>.\r
+ It may be used under the terms of the GNU General Public License. */\r
+\r
using System;\r
using System.Collections.Generic;\r
+using System.Collections.Specialized;\r
+using System.ComponentModel;\r
+using System.Data;\r
+using System.Drawing;\r
+using System.Text;\r
using System.Windows.Forms;\r
+using System.Net;\r
+using System.IO;\r
+using System.Diagnostics;\r
+using System.Threading;\r
+using System.Runtime.InteropServices;\r
+\r
\r
namespace Handbrake\r
{\r
[STAThread]\r
static void Main()\r
{\r
- // testing svn: brianmario\r
- Application.EnableVisualStyles();\r
- Application.SetCompatibleTextRenderingDefault(false);\r
- Application.Run(new frmMain());\r
+\r
+ // Development Code Expiry.\r
+ // Remember to comment out on public release!!!\r
+ if (DateTime.Now > DateTime.Parse("30/1/2008")) { MessageBox.Show("Sorry, This development build of Handbrake has expired."); return; } \r
+\r
+ // Check the system meets the system requirements.\r
+ Boolean launch = true;\r
+ try\r
+ {\r
+ // Make sure the screen resolution is not below 1024x768\r
+ System.Windows.Forms.Screen scr = System.Windows.Forms.Screen.PrimaryScreen;\r
+ if ((scr.Bounds.Width < 1024) || (scr.Bounds.Height < 720))\r
+ {\r
+ MessageBox.Show("Your system does not meet the minimum requirements for HandBrake. \n" + "Your screen is running at: " + scr.Bounds.Width.ToString() + "x" + scr.Bounds.Height.ToString() + " \nScreen resolution is too Low. Must be 1024x720 or greater", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+ launch = false;\r
+ }\r
+\r
+ // Make sure the system has enough RAM. 384MB or greater\r
+ uint memory = MemoryCheck.CheckMemeory();\r
+ memory = memory / 1024 / 1024;\r
+\r
+ if (memory < 256)\r
+ {\r
+ MessageBox.Show("Your system does not meet the minimum requirements for HandBrake. \n Insufficient RAM. 384MB or greater required. You have: " + memory.ToString() + "MB", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+ launch = false;\r
+ }\r
+ }\r
+ catch (Exception exc)\r
+ {\r
+ MessageBox.Show("frmMain.cs - systemCheck() " + exc.ToString());\r
+ }\r
+\r
+\r
+ // Either Launch or Close the Application\r
+ if (launch == true)\r
+ {\r
+ Application.EnableVisualStyles();\r
+ Application.SetCompatibleTextRenderingDefault(false);\r
+ Application.Run(new frmMain());\r
+ }\r
+ else\r
+ {\r
+ Application.Exit();\r
+ }\r
+ }\r
+ }\r
+\r
+ class MemoryCheck\r
+ {\r
+ public struct MEMORYSTATUS\r
+ {\r
+ public UInt32 dwLength;\r
+ public UInt32 dwMemoryLoad;\r
+ public UInt32 dwTotalPhys; // Used\r
+ public UInt32 dwAvailPhys;\r
+ public UInt32 dwTotalPageFile;\r
+ public UInt32 dwAvailPageFile;\r
+ public UInt32 dwTotalVirtual;\r
+ public UInt32 dwAvailVirtual;\r
+ // Aditional Varibles left in for future usage (JIC)\r
+ }\r
+\r
+ [DllImport("kernel32.dll")]\r
+ public static extern void GlobalMemoryStatus\r
+ (\r
+ ref MEMORYSTATUS lpBuffer\r
+ );\r
+\r
+ public static uint CheckMemeory()\r
+ {\r
+ // Call the native GlobalMemoryStatus method\r
+ // with the defined structure.\r
+ MEMORYSTATUS memStatus = new MEMORYSTATUS();\r
+ GlobalMemoryStatus(ref memStatus);\r
+\r
+ uint MemoryInfo = memStatus.dwTotalPhys;\r
+\r
+ return MemoryInfo;\r
}\r
}\r
}
\ No newline at end of file