static void Main(string[] args) { int SuperMode = 0; if (args.Length > 0) { string firstArgument = args[0].ToLower().Trim(); string secondArgument = null; 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 { SuperMode = 1; } else if (firstArgument == "/p") // Preview mode { SuperMode = 2; } else if (firstArgument == "/s") // Full-screen mode { SuperMode = 0; } else // Undefined argument { MessageBox.Show("Sorry, but the command line argument \"" + firstArgument + "\" is not valid.", "ScreenSaver", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else // No arguments - treat like /c { SuperMode = 0; } #region Screensaver if (SuperMode == 0) { if (File.Exists("./MultiSaverConfig.xml")) { List<GroupSetting> Groups = XMLHandler.load("./MultiSaverConfig.xml"); foreach (GroupSetting Group in Groups) { int Mode = Group.ssType == "SlideShow" ? 1 : 2; switch (Mode) { case 1: foreach (MonitorSetting MS in Group.monitors) { foreach (Screen S in System.Windows.Forms.Screen.AllScreens) { if (S.DeviceName == MS.monitorId) { Thread MonitorThread = new Thread(RunAlbum); MonitorThread.Start(new object[] { new Rectangle(S.Bounds.X, S.Bounds.Y, S.Bounds.Width, S.Bounds.Height), MS.albumLocation }); break; } } } break; case 2: foreach (MonitorSetting MS in Group.monitors) { foreach (Screen S in System.Windows.Forms.Screen.AllScreens) { if (S.DeviceName == MS.monitorId) { Thread MazeAICenter = new Thread(RunMaze); MazeAICenter.Start(new object[] { new Rectangle(S.Bounds.X, S.Bounds.Y, S.Bounds.Width, S.Bounds.Height), S.Primary ? 0 : 1, S.Primary ? 0 : 10 }); Thread.Sleep(1000); break; } } } break; } } } else { foreach (Screen S in System.Windows.Forms.Screen.AllScreens) { Thread MonitorThread = new Thread(RunAlbum); MonitorThread.Start(new object[] { new Rectangle(S.Bounds.X, S.Bounds.Y, S.Bounds.Width, S.Bounds.Height), "" }); } } } #endregion if (SuperMode == 1) { WPF_Practice.MainWindow ConfigPanel = new MainWindow(); ConfigPanel.ShowDialog(); } if (SuperMode == 2) { string firstArgument = args[0].ToLower().Trim(); string secondArgument = null; if (firstArgument.Length > 2) { secondArgument = firstArgument.Substring(3).Trim(); firstArgument = firstArgument.Substring(0, 2); } else if (args.Length > 1) secondArgument = args[1]; IntPtr previewWndHandle = new IntPtr(long.Parse(secondArgument)); Thread MonitorThread = new Thread(RunDemo); MonitorThread.Start(new object[] { new Rectangle(0, 0, 800, 600), previewWndHandle }); } }
public Save(List<GroupSetting> gs, MainWindow mw) { groupSettings = gs; mainWindow = mw; InitializeComponent(); }