Beispiel #1
0
        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 });

            }
        }
Beispiel #2
0
 public Save(List<GroupSetting> gs, MainWindow mw)
 {
     groupSettings = gs;
     mainWindow = mw;
     InitializeComponent();
 }