Arguments and changing the value

59 views Asked by At

A newbie, please excuse the terms and explanation.

I have a program that accepts arguments which are in seconds. This in turn runs a timer that shows on the form. I want to give the user the ability to pause the timer for a set amount of time. I am having difficulty in trying to add time after the user Clicks the button as the method that runs the timer and countdown I have a method that gets the parameters of the argument.

I would like to maybe just get the parameters/arguments globally and then use them in all the different methods or threads. I am trying to do this in c# and wpf.

Code below:

public partial class MainWindow : Window
{
    //int TimeOutPeriod = Int32.Parse("3600");
    //private Timer timer;
    System.Timers.Timer timer = new System.Timers.Timer();

    public MainWindow()
    {
        InitializeComponent();
        //timer = new Timer(1000);
        timer = new System.Timers.Timer(1000);
        timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
        timer.Start();
        string[] param = Environment.GetCommandLineArgs();
        int TimeOutPeriod = Int32.Parse(param[1]);
        ProgressBar1.Maximum = TimeOutPeriod;
    }

    void timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        string [] param = Environment.GetCommandLineArgs();

        int TimeOutPeriod = Int32.Parse(param[1]);

        int InYourFaceDisplay = Int32.Parse(param[2]);

        this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)(() =>
        {
            if (ProgressBar1.Value < TimeOutPeriod)
            {
                ProgressBar1.Value += 1;
                RebootCDown.Content = "Machine will reboot in : " + (TimeOutPeriod - ProgressBar1.Value) + " Secs";
                if ((TimeOutPeriod - ProgressBar1.Value) < InYourFaceDisplay)
                {
                    this.Activate();
                }
            }
            else
            {
                ShutDownWindows("0");
                timer.Stop();
                this.Close();
            }
        }));
    }

    private void SnoozeNow_Click(object sender, RoutedEventArgs e)
    {
        WindowState = WindowState.Minimized;
        System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
        ShowInTaskbar = false;
        ni.Icon = new System.Drawing.Icon("C:\\temp\\RebootIco.ico");
        ni.Visible = true;
        ShowInTaskbar = false;
        ni.ShowBalloonTip(5000, "Test App", "Notify icon is working! Right click to access the context menu.", System.Windows.Forms.ToolTipIcon.Info);
        Task.Delay(10000);
        ShowInTaskbar = true;

    }
}
0

There are 0 answers