Subversion Repositories Code-Repo

Rev

Blame | Last modification | View Log | RSS feed

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace SWAT_USB_App
{
    public partial class form_Main_Menu : Form
    {
        public form_Main_Menu()
        {
            Initialization.Initialize();
            DebugText.startNewSession();
            DebugText.appendText("Main menu form initializing");
            DebugText.appendText("SWAT Drive detected as drive " + Initialization.pathToSWATDrive);
            // Debug: Shows the drive letter of the USB drive detected at startup
            //DEBUG: MessageBox.Show(Initialization.pathToSWATDrive, "Drive Letter", MessageBoxButtons.OK);
            InitializeComponent();
            this.KeyPreview = true;
            this.KeyPress += new KeyPressEventHandler(this.form_Main_Menu_KeyPress);
            this.FormClosing += new FormClosingEventHandler(form_Main_Menu_FormClosing);
            if (!SettingsParser.settingsFileExist())
            {
                DebugText.appendText("USBSettings.xml cannot be found");
                MessageBox.Show("USBSettings.xml cannot be found.", "Error");
            }
            else
                SettingsParser.readSettingsFile();
        }
        private void btn_Main_Drivers_Click(object sender, EventArgs e)
        {
            form_Drivers.driver_Form_Instance.ShowDialog();
        }
        private void btn_Main_Software_Click(object sender, EventArgs e)
        {
            form_Software.software_Form_Instance.ShowDialog();
        }
        private void btn_Main_Exit_Click(object sender, EventArgs e)
        {
            if (System.IO.File.Exists("Debug.txt"))
                DebugText.appendText("Closing main menu form");
            this.Close();
        }
        private void form_Main_Menu_KeyPress(object sender, KeyPressEventArgs e)
        // Enables keyboard control for button navigation
        {
            switch (e.KeyChar)
            {
                case 'd':
                case 'D':
                    form_Drivers.driver_Form_Instance.ShowDialog();
                    break;
                case 's':
                case 'S':
                    form_Software.software_Form_Instance.ShowDialog();
                    break;
            }
        }
        void form_Main_Menu_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                // If the application is located in the startup folder, prompt for removal on exit
                if (System.IO.Directory.GetCurrentDirectory() == System.Environment.SystemDirectory)
                {
                    // If user chooses to remove the program from startup, initializes code to delete the exe after program exits
                    DialogResult result;
                    result = MessageBox.Show("Would you like to remove this menu from startup?", "Remove from startup?", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        ProcessStartInfo Info = new ProcessStartInfo();
                        // Calls up a hidden command prompt with a timeout of 3 seconds, automatically chooses yes to delete
                        Info.Arguments = "/C choice /C Y /N /D Y /T 3 & Del \"" + Application.ExecutablePath + "\"";
                        Info.WindowStyle = ProcessWindowStyle.Hidden;
                        Info.CreateNoWindow = true;
                        Info.FileName = "cmd.exe";
                        Process.Start(Info);
                    }
                }
            }
            catch (Exception ex)
            {
                DebugText.appendText("Exception Thrown: " + ex.ToString());
                MessageBox.Show(ex.ToString());
            }
        }
    }
}