Пример #1
0
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            if (args != null && args.Length != 0)
            {
                cmdArgs tmpArgs = new cmdArgs(args);

                string   WaitForWindowName       = string.Empty;
                bool     WaitForForeGroundWindow = false;
                int      WaitTimeOut             = -1;
                DateTime startTime = DateTime.Now;

                if (tmpArgs.ArgExists("WindowName"))
                {
                    WaitForWindowName = tmpArgs.Values[tmpArgs.FindArgPos("WindowName")];
                }
                if (tmpArgs.ArgExists("ForeGroundWindowName"))
                {
                    WaitForWindowName       = tmpArgs.Values[tmpArgs.FindArgPos("ForeGroundWindowName")];
                    WaitForForeGroundWindow = true;
                }

                if (tmpArgs.ArgExists("WaitTimeOut"))
                {
                    int.TryParse(tmpArgs.Values[tmpArgs.FindArgPos("WaitTimeOut")], out WaitTimeOut);
                }

                if (WaitForWindowName != string.Empty)
                {
                    IntPtr tmpFoundWindowHandle = IntPtr.Zero;
                    WindowManagement.GetHandleFromPartialCaption(ref tmpFoundWindowHandle, WaitForWindowName);

                    while (tmpFoundWindowHandle == IntPtr.Zero || (WaitForForeGroundWindow && WindowManagement.GetForegroundWindow() != tmpFoundWindowHandle))
                    {
                        System.Threading.Thread.Sleep(250);
                        WindowManagement.GetHandleFromPartialCaption(ref tmpFoundWindowHandle, WaitForWindowName);

                        if (WaitTimeOut != -1)
                        {
                            TimeSpan tmpSpan = DateTime.Now - startTime;
                            if (WaitTimeOut <= tmpSpan.TotalMilliseconds)
                            {
                                System.Environment.Exit(1);
                            }
                        }
                    }
                }
            }

            System.Environment.Exit(0);
        }
Пример #2
0
        public void ProcessParameters(object sender, string[] args)
        {
            // The form has loaded, and initialization will have been be done.

            // Add the command-line arguments to our textbox, just to confirm that
            // it reached here.

            lock (args)
            {
                if (args != null && args.Length != 0)
                {
                    txtArgs.Text += DateTime.Now.ToString("mm:ss.ff") + " ";

                    for (int i = 0; i < args.Length; i++)
                    {
                        txtArgs.Text += args[i] + " ";
                    }
                    txtArgs.Text += "\r\n";

                    if (FullScreenForm == null) // create the fullscreen form instance if she does not exist
                    {
                        FullScreenForm                     = new frmFullScreen();
                        this.Owner                         = FullScreenForm;
                        this.FormBorderStyle               = FormBorderStyle.None;
                        this.Left                          = (Screen.PrimaryScreen.Bounds.Width / 2 - this.Width / 2) + 1;
                        this.Top                           = (Screen.PrimaryScreen.Bounds.Height / 2 - this.Height / 2) + 1;
                        FullScreenForm.lblMainLable.Text   = "";
                        FullScreenForm.lblMainLable.Parent = FullScreenForm.pbBackground;
                        FullScreenForm.MainFormObj         = this;
                        FullScreenForm.Show();

                        Cursor.Position = new System.Drawing.Point(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

                        _bFullScreenMode = true;
                    }

                    lock (FullScreenForm)
                    {
                        cmdArgs tmpArgs = new cmdArgs(args);

                        if (tmpArgs.ArgExists("Text"))
                        {
                            FullScreenForm.lblMainLable.Text = tmpArgs.Values[tmpArgs.FindArgPos("Text")];
                        }
                        if (tmpArgs.ArgExists("TextColor"))
                        {
                            FullScreenForm.lblMainLable.ForeColor = System.Drawing.ColorTranslator.FromHtml(tmpArgs.Values[tmpArgs.FindArgPos("TextColor")]);
                        }
                        if (tmpArgs.ArgExists("TextSize"))
                        {
                            FullScreenForm.lblMainLable.Font = new Font(FullScreenForm.lblMainLable.Font.FontFamily, float.Parse(tmpArgs.Values[tmpArgs.FindArgPos("TextSize")]), FullScreenForm.lblMainLable.Font.Style);
                        }
                        if (tmpArgs.ArgExists("BgImage"))
                        {
                            FullScreenForm.pbBackground.Image = new Bitmap(tmpArgs.Values[tmpArgs.FindArgPos("BgImage")]);
                            if (!FullScreenForm.Visible || FullScreenForm.Opacity == 0)
                            {
                                FullScreenForm.Update();
                                FullScreenForm.Opacity = 100;
                                this.Visible           = false;
                            }
                        }
                        if (tmpArgs.ArgExists("ReadMpBackground"))
                        {
                            if (FullScreenForm.RetrieveSplashBackground())
                            {
                                FullScreenForm.Update();
                                FullScreenForm.Opacity = 100;
                                this.Visible           = false;
                            }
                        }
                        if (tmpArgs.ArgExists("ObservateMpStartup"))
                        {
                            bool.TryParse(tmpArgs.Values[tmpArgs.FindArgPos("ObservateMpStartup")], out FullScreenForm.OberservateMPStartup);
                        }
                        if (tmpArgs.ArgExists("ForceForeground"))
                        {
                            bool.TryParse(tmpArgs.Values[tmpArgs.FindArgPos("ForceForeground")], out FullScreenForm.ForceForeground);
                        }
                        if (tmpArgs.ArgExists("CloseOnWindowName"))
                        {
                            FullScreenForm.CloseOnWindowName = tmpArgs.Values[tmpArgs.FindArgPos("CloseOnWindowName")];
                        }
                        if (tmpArgs.ArgExists("CloseOnForegroundWindowName"))
                        {
                            FullScreenForm.CloseOnForegroundWindowName = tmpArgs.Values[tmpArgs.FindArgPos("CloseOnForegroundWindowName")];
                        }
                        if (tmpArgs.ArgExists("CloseTimeOut"))
                        {
                            int.TryParse(tmpArgs.Values[tmpArgs.FindArgPos("CloseTimeOut")], out FullScreenForm.CloseTimeOut);
                        }

                        if (tmpArgs.ArgExists("Close"))
                        {
                            FullScreenForm.Close();
                        }
                    }
                }
                else
                {
                    Stream stream = this.GetType().Assembly.GetManifestResourceStream("FullScreenMsg.help.rtf");
                    txtArgs.LoadFile(stream, RichTextBoxStreamType.RichText);

                    this.ShowInTaskbar = true;
                    this.WindowState   = FormWindowState.Normal;
                    this.Show();
                }
            }
        }