static void Main(string[] args) { if (Environment.GetCommandLineArgs().Contains<string>("/installed")) { Properties.Settings.Default.Upgrade(); Properties.Settings.Default.UpgradeSettings = false; Properties.Settings.Default.Save(); Application.Restart(); return; } mutex = new Mutex(true, "mutex_beta_manager_"+Properties.Settings.Default.vm_name+"_vm_runonce"); if (mutex.WaitOne(TimeSpan.Zero, true) || System.Diagnostics.Debugger.IsAttached) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (Properties.Settings.Default.UpgradeSettings) { Properties.Settings.Default.Upgrade(); Properties.Settings.Default.UpgradeSettings = false; Properties.Settings.Default.Save(); } if (Environment.GetCommandLineArgs().Contains<string>("/reset")) { Properties.Settings.Default.Reset(); Properties.Settings.Default.Save(); } identity = getIdentity(Environment.GetCommandLineArgs().Contains<string>("/auth")); LogEvents += new LogEvent(NetworkLog); VM = new VirtualMachine(); DBG = new Forms.Debug(); VM.OnVmEvent += new VirtualMachine.VmEvent(DBG.debugLog); VM.OnVmEvent += new VirtualMachine.VmEvent(Log); NL = new Network_listener(); NL.OnPing += delegate(string auth, string msg) { Packet p = new Packet(); p.dataIdentifier = Packet.DataIdentifier.Pong; p.message = auth + "[" + msg +"]:T["+ DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds+"]"; Network_Broadcast.send(p); }; NL.OnInfo += delegate(string auth, string msg) { Log(auth + ": " + msg, "Devel VM Manager: Informator", 1); }; NL.OnError += delegate(string auth, string msg) { Log(String.Format("!!! {1} ({0}) !!!", auth, msg), "Devel VM Manager: Informator", 2); }; NL.OnVersion += delegate(string auth, string msg) { Packet p = new Packet(); p.dataIdentifier = Packet.DataIdentifier.Debug; p.message = "AppVer: " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); p.message += " / ImgVer: " + VM.getVersion(); Network_Broadcast.send(p); }; Application.ApplicationExit += new EventHandler(Application_ApplicationExit); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); AppDomain.CurrentDomain.FirstChanceException += (object source, FirstChanceExceptionEventArgs e) => { Packet p = new Packet(); p.dataIdentifier = Packet.DataIdentifier.Debug; p.message = String.Format("FirstChanceException event raised in {0}: {2}\nStackTrace:{1}", AppDomain.CurrentDomain.FriendlyName, e.Exception.StackTrace, e.Exception.Message); Network_Broadcast.send(p); }; SetProcessShutdownParameters(0x3FF, 0x00000001); Application.Run(new fMain()); mutex.ReleaseMutex(); } else { if(Environment.GetCommandLineArgs().Contains<string>("/r")) { Process[] prcs = Process.GetProcessesByName("Devel_VM"); foreach (Process prc in prcs) { if (Process.GetCurrentProcess().Id != prc.Id) { prc.Kill(); } } prcs = Process.GetProcessesByName("Beta_Manager"); foreach (Process prc in prcs) { if (Process.GetCurrentProcess().Id != prc.Id) { prc.Kill(); } } prcs = Process.GetProcessesByName("VBoxSVC"); foreach (Process prc in prcs) prc.Kill(); prcs = Process.GetProcessesByName("VBoxHeadless"); foreach (Process prc in prcs) prc.Kill(); Application.Restart(); } NativeMethods.PostMessage( (IntPtr)NativeMethods.HWND_BROADCAST, NativeMethods.WM_SHOWME, IntPtr.Zero, IntPtr.Zero ); } }
private void Form1_Load(object sender, EventArgs e) { nl = new Network_listener(); nl.OnAny += new Network_listener.AnyEvent(Any); }