static void Main(string[] args) { AppDomain.CurrentDomain.AssemblyResolve += (sender, dll) => { var resName = "Aerial.libs." + dll.Name.Split(',')[0] + ".dll"; var thisAssembly = Assembly.GetExecutingAssembly(); using (var input = thisAssembly.GetManifestResourceStream(resName)) { return(input != null ? Assembly.Load(StreamToBytes(input)) : null); } }; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Caching.Setup(); if (args.Length > 0) { string firstArgument = args[0].ToLower().Trim(); string secondArgument = null; // Handle cases where arguments are separated by colon. // Examples: /c:1234567 or /P:1234567 if (firstArgument.Length > 2) { secondArgument = firstArgument.Substring(3).Trim(); firstArgument = firstArgument.Substring(0, 2); } else if (args.Length > 1) { secondArgument = args[1]; } if (firstArgument == "/c") // Configuration mode { var settings = new SettingsForm(); settings.StartPosition = FormStartPosition.CenterScreen; Application.Run(settings); } else if (firstArgument == "/p") // Preview mode { if (secondArgument == null) { MessageBox.Show("Sorry, but the expected window handle was not provided.", "ScreenSaver", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } IntPtr previewWndHandle = new IntPtr(long.Parse(secondArgument)); Application.Run(new ScreenSaverForm(previewWndHandle)); } else if (firstArgument == "/s") // Full-screen mode { ShowScreenSaver(); Application.Run(); } else if (firstArgument == "/w") // if executable, windowed mode. { Application.Run(new ScreenSaverForm(WindowMode: true)); } else // Undefined argument { MessageBox.Show("Sorry, but the command line argument \"" + firstArgument + "\" is not valid.", "ScreenSaver", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { if (System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName.EndsWith("exe")) // treat like /w { Application.Run(new ScreenSaverForm(WindowMode: true)); } else // No arguments - treat like /c { Application.Run(new SettingsForm()); } } }