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