Example #1
0
 private void InitializeControls(SmartSystemMenuSettings settings)
 {
     lblLeft.Text  = settings.LanguageSettings.GetValue("lbl_left");
     lblTop.Text   = settings.LanguageSettings.GetValue("lbl_top");
     btnApply.Text = settings.LanguageSettings.GetValue("align_btn_apply");
     Text          = settings.LanguageSettings.GetValue("align_form");
 }
Example #2
0
 public ProcessExclusionForm(string processName, SmartSystemMenuSettings settings)
 {
     _settings = settings;
     InitializeComponent();
     InitializeControls(settings);
     txtFileName.Text = processName;
 }
Example #3
0
 private void InitializeControls(SmartSystemMenuSettings settings)
 {
     lblWidth.Text  = settings.LanguageSettings.GetValue("lbl_width");
     lblHeight.Text = settings.LanguageSettings.GetValue("lbl_height");
     btnApply.Text  = settings.LanguageSettings.GetValue("size_btn_apply");
     Text           = settings.LanguageSettings.GetValue("size_form");
 }
Example #4
0
 private void InitializeControls(Window window, SmartSystemMenuSettings settings)
 {
     btnApply.Text             = settings.Language.GetValue("trans_btn_apply");
     Text                      = settings.Language.GetValue("trans_form");
     numericTransparency.Value = window.Transparency;
     DialogResult              = DialogResult.Cancel;
 }
Example #5
0
 private void InitializeControls(SmartSystemMenuSettings settings)
 {
     lblFileName.Text = settings.LanguageSettings.GetValue("process_lbl_file_name");
     btnApply.Text    = settings.LanguageSettings.GetValue("process_btn_apply");
     btnCancel.Text   = settings.LanguageSettings.GetValue("process_btn_cancel");
     Text             = settings.LanguageSettings.GetValue("process_name_form");
 }
Example #6
0
        public TransparencyForm(Window window, SmartSystemMenuSettings settings)
        {
            InitializeComponent();
            InitializeControls(settings);

            _window = window;
            numericTransparency.Value = _window.Transparency;
        }
Example #7
0
        public MainForm()
        {
            InitializeComponent();

            _settings = new SmartSystemMenuSettings();
            AppDomain.CurrentDomain.UnhandledException += OnCurrentDomainUnhandledException;
            Application.ThreadException += OnThreadException;
        }
Example #8
0
 private void InitializeControls(SmartSystemMenuSettings settings)
 {
     lblTitle.Text     = settings.LanguageSettings.GetValue("start_program_lbl_title");
     btnApply.Text     = settings.LanguageSettings.GetValue("start_program_btn_apply");
     btnCancel.Text    = settings.LanguageSettings.GetValue("start_program_btn_Cancel");
     lblFileName.Text  = settings.LanguageSettings.GetValue("start_program_lbl_file_name");
     lblArguments.Text = settings.LanguageSettings.GetValue("start_program_lbl_arguments");
     Text = settings.LanguageSettings.GetValue("start_program_form");
 }
Example #9
0
        public MainForm(SmartSystemMenuSettings settings, WindowSettings windowSettings)
        {
            InitializeComponent();

            _settings       = settings;
            _windowSettings = windowSettings;
            AppDomain.CurrentDomain.UnhandledException += OnCurrentDomainUnhandledException;
            Application.ThreadException += OnThreadException;
        }
Example #10
0
        private void FillGridViewGroupHotkey(DataGridView gridView, SmartSystemMenuSettings settings, string itemName)
        {
            var index = gridView.Rows.Add();
            var row   = gridView.Rows[index];

            row.Cells[0].Value = settings.LanguageSettings.GetValue(itemName);
            row.ReadOnly       = true;
            ((DataGridViewDisableButtonCell)row.Cells[2]).Enabled = false;
        }
Example #11
0
 public static IList <Window> EnumAllWindows(SmartSystemMenuSettings settings, WindowSettings windowSettings, params string[] filterTitles)
 {
     _filterTitles   = filterTitles ?? new string[0];
     _windows        = new List <Window>();
     _settings       = settings;
     _windowSettings = windowSettings;
     User32.EnumWindows(EnumWindowCallback, 0);
     return(_windows);
 }
Example #12
0
 public AboutForm(SmartSystemMenuSettings settings)
 {
     InitializeComponent();
     btnOk.Text          = settings.LanguageSettings.GetValue("about_btn_ok");
     Text                = settings.LanguageSettings.GetValue("about_form") + AssemblyUtils.AssemblyProductName;
     lblProductName.Text = string.Format("{0} v{1}", AssemblyUtils.AssemblyProductName, AssemblyUtils.AssemblyProductVersion);
     lblCopyright.Text   = string.Format("{0}-{1} {2}", AssemblyUtils.AssemblyCopyright, DateTime.Now.Year, AssemblyUtils.AssemblyCompany);
     linkUrl.Text        = URL_SMART_SYSTEM_MENU;
 }
Example #13
0
        public SizeForm(Window window, SmartSystemMenuSettings settings)
        {
            InitializeComponent();
            InitializeControls(settings);

            _window             = window;
            numericWidth.Value  = _window.Size.Width;
            numericHeight.Value = _window.Size.Height;
        }
Example #14
0
        public PositionForm(Window window, SmartSystemMenuSettings settings)
        {
            _window = window;

            InitializeComponent();
            InitializeControls(settings);

            numericLeft.Value = _window.SizeOnMonitor.Left;
            numericTop.Value  = _window.SizeOnMonitor.Top;
        }
Example #15
0
        public StartProgramForm(string title, string processName, string arguments, SmartSystemMenuSettings settings)
        {
            _settings = settings;

            InitializeComponent();
            InitializeControls(settings);

            txtTitle.Text     = title;
            txtFileName.Text  = processName;
            txtArguments.Text = arguments;
        }
Example #16
0
        private void FillGridViewGroupHotkey(DataGridView gridView, SmartSystemMenuSettings settings, string itemName)
        {
            var index    = gridView.Rows.Add();
            var row      = gridView.Rows[index];
            var menuItem = settings.MenuItems.Items.FirstOrDefault(x => x.Name == itemName);

            row.Tag            = (Settings.MenuItem)menuItem.Clone();
            row.Cells[0].Value = settings.LanguageSettings.GetValue(itemName);
            row.ReadOnly       = true;
            ((DataGridViewCheckBoxCell)row.Cells[2]).Value        = menuItem.Show;
            ((DataGridViewCheckBoxCell)row.Cells[2]).ToolTipText  = settings.LanguageSettings.GetValue("clm_hotkeys_show_tooltip");
            ((DataGridViewDisableButtonCell)row.Cells[3]).Enabled = false;
        }
Example #17
0
        public SettingsForm(SmartSystemMenuSettings settings)
        {
            InitializeComponent();

            try
            {
                _settings = settings;
                InitializeControls(settings);
            }
            catch
            {
                tabMain.Enabled  = false;
                btnApply.Enabled = false;
                MessageBox.Show("Failed to read the settings.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #18
0
        private void FillGridViewRowHotkey(DataGridView gridView, SmartSystemMenuSettings settings, string itemName, string title = null, bool isPadding = false)
        {
            var index    = gridView.Rows.Add();
            var row      = gridView.Rows[index];
            var menuItem = settings.MenuItems.Items.FirstOrDefault(x => x.Name == itemName);

            title              = title != null ? title : settings.LanguageSettings.GetValue(itemName);
            row.Tag            = (Settings.MenuItem)menuItem.Clone();
            row.Cells[0].Value = title;
            row.Cells[1].Value = menuItem == null ? "" : menuItem.ToString();
            if (isPadding)
            {
                var padding = row.Cells[0].Style.Padding;
                row.Cells[0].Style.Padding = new Padding(20, padding.Top, padding.Right, padding.Bottom);
            }
        }
Example #19
0
        private void ButtonApplyClick(object sender, EventArgs e)
        {
            var settings = new SmartSystemMenuSettings();

            foreach (DataGridViewRow row in gvProcessExclusions.Rows)
            {
                settings.ProcessExclusions.Add(row.Cells[0].Value.ToString());
            }

            foreach (DataGridViewRow row in gvStartProgram.Rows)
            {
                settings.MenuItems.StartProgramItems.Add(new StartProgramMenuItem {
                    Title = row.Cells[0].Value.ToString(), FileName = row.Cells[1].Value.ToString(), Arguments = row.Cells[2].Value.ToString()
                });
            }

            foreach (DataGridViewRow row in gvHotkeys.Rows.OfType <DataGridViewRow>().Where(x => x.Tag is Settings.MenuItem))
            {
                var menuItem = (Settings.MenuItem)row.Tag;
                settings.MenuItems.Items.Add(menuItem);
            }

            settings.LanguageName = cmbLanguage.SelectedValue == null ? "" : cmbLanguage.SelectedValue.ToString();

            if (!settings.Equals(_settings))
            {
                MessageBox.Show(_settings.LanguageSettings.GetValue("message_box_attention_content"), _settings.LanguageSettings.GetValue("message_box_attention_title"), MessageBoxButtons.OK);

                try
                {
                    settings.LanguageSettings = _settings.LanguageSettings;

                    var settingsFileName = Path.Combine(AssemblyUtils.AssemblyDirectory, "SmartSystemMenu.xml");
                    SmartSystemMenuSettings.Save(settingsFileName, settings);
                    if (OkClick != null)
                    {
                        OkClick.Invoke(this, new SmartSystemMenuSettingsEventArgs(settings));
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Failed to save the settings." + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            Close();
        }
Example #20
0
        private void InitializeControls(SmartSystemMenuSettings settings)
        {
            foreach (var processExclusion in settings.ProcessExclusions)
            {
                var index = gvProcessExclusions.Rows.Add();
                var row   = gvProcessExclusions.Rows[index];
                row.Cells[0].Value       = processExclusion;
                row.Cells[1].ToolTipText = "Edit";
                row.Cells[2].ToolTipText = "Delete";
            }

            foreach (var item in settings.MenuItems.StartProgramItems)
            {
                var index = gvStartProgram.Rows.Add();
                var row   = gvStartProgram.Rows[index];
                row.Cells[0].Value       = item.Title;
                row.Cells[1].Value       = item.FileName;
                row.Cells[2].Value       = item.Arguments;
                row.Cells[3].ToolTipText = "Edit";
                row.Cells[4].ToolTipText = "Delete";
            }
        }
Example #21
0
        private void ButtonApplyClick(object sender, EventArgs e)
        {
            var settings = new SmartSystemMenuSettings();

            foreach (DataGridViewRow row in gvProcessExclusions.Rows)
            {
                settings.ProcessExclusions.Add(row.Cells[0].Value.ToString());
            }

            foreach (DataGridViewRow row in gvStartProgram.Rows)
            {
                settings.MenuItems.StartProgramItems.Add(new StartProgramItem {
                    Title = row.Cells[0].Value.ToString(), FileName = row.Cells[1].Value.ToString(), Arguments = row.Cells[2].Value.ToString()
                });
            }

            if (!settings.Equals(_settings))
            {
                MessageBox.Show("You should restart the application manually to apply the settings.", "Attention", MessageBoxButtons.OK);

                try
                {
                    var settingsFileName = Path.Combine(AssemblyUtils.AssemblyDirectory, "SmartSystemMenu.xml");
                    SmartSystemMenuSettings.Save(settingsFileName, settings);
                    if (OkClick != null)
                    {
                        OkClick.Invoke(this, new SmartSystemMenuSettingsEventArgs(settings));
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Failed to save the settings." + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            Close();
        }
Example #22
0
        private void InitializeControls(SmartSystemMenuSettings settings, Settings.MenuItem menuItem)
        {
            Text           = settings.LanguageSettings.GetValue("hotkeys_form");
            btnApply.Text  = settings.LanguageSettings.GetValue("hotkeys_btn_apply");
            btnCancel.Text = settings.LanguageSettings.GetValue("hotkeys_btn_cancel");
            lblKey1.Text   = settings.LanguageSettings.GetValue("hotkeys_lbl_key1");
            lblKey2.Text   = settings.LanguageSettings.GetValue("hotkeys_lbl_key2");
            lblKey3.Text   = settings.LanguageSettings.GetValue("hotkeys_lbl_key3");

            cmbKey1.ValueMember   = "Id";
            cmbKey1.DisplayMember = "Text";
            cmbKey1.DataSource    = ((VirtualKeyModifier[])Enum.GetValues(typeof(VirtualKeyModifier))).Where(x => !string.IsNullOrEmpty(x.GetDescription())).Select(x => new { Id = x, Text = x.GetDescription() }).ToList();
            cmbKey1.SelectedValue = menuItem.Key1;

            cmbKey2.ValueMember   = "Id";
            cmbKey2.DisplayMember = "Text";
            cmbKey2.DataSource    = ((VirtualKeyModifier[])Enum.GetValues(typeof(VirtualKeyModifier))).Where(x => !string.IsNullOrEmpty(x.GetDescription())).Select(x => new { Id = x, Text = x.GetDescription() }).ToList();
            cmbKey2.SelectedValue = menuItem.Key2;

            cmbKey3.ValueMember   = "Id";
            cmbKey3.DisplayMember = "Text";
            cmbKey3.DataSource    = ((VirtualKey[])Enum.GetValues(typeof(VirtualKey))).Where(x => !string.IsNullOrEmpty(x.GetDescription())).Select(x => new { Id = x, Text = x.GetDescription() }).ToList();
            cmbKey3.SelectedValue = menuItem.Key3;
        }
Example #23
0
 public HotkeysForm(SmartSystemMenuSettings settings, Settings.MenuItem menuItem)
 {
     InitializeComponent();
     MenuItem = menuItem;
     InitializeControls(settings, menuItem);
 }
Example #24
0
        private void InitializeControls(SmartSystemMenuSettings settings)
        {
            lblLanguage.Text                     = settings.LanguageSettings.GetValue("lbl_language");
            tabpGeneral.Text                     = settings.LanguageSettings.GetValue("tab_settings_general");
            tabpMenu.Text                        = settings.LanguageSettings.GetValue("tab_settings_menu");
            tabpHotkeys.Text                     = settings.LanguageSettings.GetValue("tab_settings_hotkeys");
            grpbProcessExclusions.Text           = settings.LanguageSettings.GetValue("grpb_process_exclusions");
            grpbStartProgram.Text                = settings.LanguageSettings.GetValue("grpb_start_program");
            clmProcessExclusionName.HeaderText   = settings.LanguageSettings.GetValue("clm_process_exclusion_name");
            clmProcessExclusionEdit.ToolTipText  = settings.LanguageSettings.GetValue("clm_process_exclusion_edit");
            clmProcessExcusionDelete.ToolTipText = settings.LanguageSettings.GetValue("clm_process_exclusion_delete");
            clmStartProgramTitle.HeaderText      = settings.LanguageSettings.GetValue("clm_start_program_title");
            clmStartProgramPath.HeaderText       = settings.LanguageSettings.GetValue("clm_start_program_path");
            clmStartProgramArguments.HeaderText  = settings.LanguageSettings.GetValue("clm_start_program_arguments");
            clmStartProgramEdit.ToolTipText      = settings.LanguageSettings.GetValue("clm_start_program_edit");
            clmStartProgramDelete.ToolTipText    = settings.LanguageSettings.GetValue("clm_start_program_delete");
            clmnMenuItemName.HeaderText          = settings.LanguageSettings.GetValue("clm_hotkeys_name");
            clmnHotkeys.HeaderText               = settings.LanguageSettings.GetValue("clm_hotkeys_keys");
            toolTipAddProcessName.SetToolTip(btnProcessExclusionDown, settings.LanguageSettings.GetValue("btn_process_exclusion_down"));
            toolTipAddProcessName.SetToolTip(btnProcessExclusionUp, settings.LanguageSettings.GetValue("btn_process_exclusion_up"));
            toolTipAddProcessName.SetToolTip(btnAddProcessExclusion, settings.LanguageSettings.GetValue("btn_add_process_exclusion"));
            toolTipAddProcessName.SetToolTip(btnAddStartProgram, settings.LanguageSettings.GetValue("btn_add_start_program"));
            toolTipAddProcessName.SetToolTip(btnStartProgramDown, settings.LanguageSettings.GetValue("btn_start_program_down"));
            toolTipAddProcessName.SetToolTip(btnStartProgramUp, settings.LanguageSettings.GetValue("btn_start_program_up"));
            btnApply.Text  = settings.LanguageSettings.GetValue("settings_btn_apply");
            btnCancel.Text = settings.LanguageSettings.GetValue("settings_btn_cancel");
            Text           = settings.LanguageSettings.GetValue("settings_form");

            foreach (var processExclusion in settings.ProcessExclusions)
            {
                var index = gvProcessExclusions.Rows.Add();
                var row   = gvProcessExclusions.Rows[index];
                row.Cells[0].Value       = processExclusion;
                row.Cells[1].ToolTipText = settings.LanguageSettings.GetValue("clm_process_exclusion_edit");
                row.Cells[2].ToolTipText = settings.LanguageSettings.GetValue("clm_process_exclusion_delete");
            }

            foreach (var item in settings.MenuItems.StartProgramItems)
            {
                var index = gvStartProgram.Rows.Add();
                var row   = gvStartProgram.Rows[index];
                row.Cells[0].Value       = item.Title;
                row.Cells[1].Value       = item.FileName;
                row.Cells[2].Value       = item.Arguments;
                row.Cells[3].ToolTipText = settings.LanguageSettings.GetValue("clm_start_program_edit");
                row.Cells[4].ToolTipText = settings.LanguageSettings.GetValue("clm_start_program_delete");
            }

            cmbLanguage.DisplayMember = "Text";
            cmbLanguage.ValueMember   = "Value";

            var languageItems = new[] {
                new { Text = "", Value = "" },
                new { Text = "English", Value = "en" },
                new { Text = "Deutsch", Value = "de" },
                new { Text = "Русский", Value = "ru" },
                new { Text = "Српски", Value = "sr" },
                new { Text = "简体中文", Value = "zh_cn" },
                new { Text = "繁體中文", Value = "zh_tw" },
                new { Text = "日本語", Value = "ja" },
                new { Text = "한국어", Value = "ko" }
            };

            cmbLanguage.DataSource    = languageItems;
            cmbLanguage.SelectedValue = settings.LanguageName;

            FillGridViewRowHotkey(gvHotkeys, settings, "information");
            FillGridViewRowHotkey(gvHotkeys, settings, "roll_up");
            FillGridViewRowHotkey(gvHotkeys, settings, "aero_glass");
            FillGridViewRowHotkey(gvHotkeys, settings, "always_on_top");
            FillGridViewRowHotkey(gvHotkeys, settings, "send_to_bottom");
            FillGridViewRowHotkey(gvHotkeys, settings, "save_screenshot");
            FillGridViewRowHotkey(gvHotkeys, settings, "open_file_in_explorer");
            FillGridViewRowHotkey(gvHotkeys, settings, "copy_text_to_clipboard");
            FillGridViewRowHotkey(gvHotkeys, settings, "drag_by_mouse");
            FillGridViewGroupHotkey(gvHotkeys, settings, "size");
            FillGridViewRowHotkey(gvHotkeys, settings, "640_480", "640x480", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "720_480", "720x480", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "720_576", "720x576", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "800_600", "800x600", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "1024_768", "1024x768", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "1152_864", "1024x768", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "1280_800", "1280x800", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "1280_960", "1280x960", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "1280_1024", "1280x1024", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "1440_900", "1440x900", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "1600_900", "1600x900", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "1680_1050", "1680x1050", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "size_default", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "size_custom", null, true);
            FillGridViewGroupHotkey(gvHotkeys, settings, "move_to");
            FillGridViewGroupHotkey(gvHotkeys, settings, "alignment");
            FillGridViewRowHotkey(gvHotkeys, settings, "align_top_left", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_top_center", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_top_right", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_middle_left", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_middle_center", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_middle_right", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_bottom_left", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_bottom_center", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_bottom_right", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_default", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "align_custom", null, true);
            FillGridViewGroupHotkey(gvHotkeys, settings, "transparency");
            FillGridViewRowHotkey(gvHotkeys, settings, "trans_opaque", "0%" + settings.LanguageSettings.GetValue("trans_opaque"), true);
            FillGridViewRowHotkey(gvHotkeys, settings, "10%", "10%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "20%", "20%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "30%", "30%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "40%", "40%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "50%", "50%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "60%", "60%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "70%", "70%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "80%", "80%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "90%", "90%", true);
            FillGridViewRowHotkey(gvHotkeys, settings, "trans_invisible", "100%" + settings.LanguageSettings.GetValue("trans_invisible"), true);
            FillGridViewRowHotkey(gvHotkeys, settings, "trans_default", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "trans_custom", null, true);
            FillGridViewGroupHotkey(gvHotkeys, settings, "priority");
            FillGridViewRowHotkey(gvHotkeys, settings, "priority_real_time", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "priority_high", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "priority_above_normal", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "priority_normal", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "priority_below_normal", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "priority_idle", null, true);
            FillGridViewGroupHotkey(gvHotkeys, settings, "system_tray");
            FillGridViewRowHotkey(gvHotkeys, settings, "minimize_to_systemtray", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "minimize_always_to_systemtray", null, true);
            FillGridViewGroupHotkey(gvHotkeys, settings, "other_windows");
            FillGridViewRowHotkey(gvHotkeys, settings, "minimize_other_windows", null, true);
            FillGridViewRowHotkey(gvHotkeys, settings, "close_other_windows", null, true);
        }
Example #25
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            var settingsFileName = Path.Combine(AssemblyUtils.AssemblyDirectory, "SmartSystemMenu.xml");

            if (File.Exists(settingsFileName))
            {
                _settings = SmartSystemMenuSettings.Read(settingsFileName);
            }
#if WIN32
            if (Environment.Is64BitOperatingSystem)
            {
                string resourceName  = "SmartSystemMenu.SmartSystemMenu64.exe";
                string fileName      = "SmartSystemMenu64.exe";
                string directoryName = Path.GetDirectoryName(AssemblyUtils.AssemblyLocation);
                string filePath      = Path.Combine(directoryName, fileName);
                try
                {
                    if (!File.Exists(filePath))
                    {
                        AssemblyUtils.ExtractFileFromAssembly(resourceName, filePath);
                    }
                    _64BitProcess = Process.Start(filePath);
                }
                catch
                {
                    string message = string.Format("Failed to load {0} process!", fileName);
                    MessageBox.Show(message, AssemblyUtils.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Close();
                    return;
                }
            }
            _systemTrayMenu = new SystemTrayMenu();
            _systemTrayMenu.MenuItemAutoStart.Click  += MenuItemAutoStartClick;
            _systemTrayMenu.MenuItemSettings.Click   += MenuItemSettingsClick;
            _systemTrayMenu.MenuItemAbout.Click      += MenuItemAboutClick;
            _systemTrayMenu.MenuItemExit.Click       += MenuItemExitClick;
            _systemTrayMenu.MenuItemAutoStart.Checked = AutoStarter.IsAutoStartByRegisterEnabled(AssemblyUtils.AssemblyProductName, AssemblyUtils.AssemblyLocation);
#endif
            _windows = EnumWindows.EnumAllWindows(_settings.MenuItems, new string[] { SHELL_WINDOW_NAME }).ToList();

            foreach (var window in _windows)
            {
                var processName = "";

                try
                {
                    processName = Path.GetFileName(window.Process.GetMainModuleFileName());
                }
                catch
                {
                }

                if (string.IsNullOrEmpty(processName) || _settings.ProcessExclusions.Contains(processName.ToLower()))
                {
                    continue;
                }

                window.Menu.Create();
                int menuItemId = window.ProcessPriority.GetMenuItemId();
                window.Menu.CheckMenuItem(menuItemId, true);
                window.Menu.SetMenuItemText(SystemMenu.SC_ALIGN_MONITOR, "Select Monitor: " + Screen.AllScreens.ToList().FindIndex(s => s.Primary));
                if (window.AlwaysOnTop)
                {
                    window.Menu.CheckMenuItem(SystemMenu.SC_TOPMOST, true);
                }
            }

            _getMsgHook         = new GetMsgHook(Handle, SystemMenu.SC_DRAG_BY_MOUSE);
            _getMsgHook.GetMsg += WindowGetMsg;
            _getMsgHook.Start();

            _shellHook = new ShellHook(Handle, SystemMenu.SC_DRAG_BY_MOUSE);
            _shellHook.WindowCreated   += WindowCreated;
            _shellHook.WindowDestroyed += WindowDestroyed;
            _shellHook.Start();

            _cbtHook = new CBTHook(Handle, SystemMenu.SC_DRAG_BY_MOUSE);
            _cbtHook.WindowCreated   += WindowCreated;
            _cbtHook.WindowDestroyed += WindowDestroyed;
            _cbtHook.MoveSize        += WindowMoveSize;
            _cbtHook.MinMax          += WindowMinMax;
            _cbtHook.Start();

            _mouseHook = new MouseHook(Handle, SystemMenu.SC_DRAG_BY_MOUSE);
            _mouseHook.Start();

            Hide();
        }
Example #26
0
        private void MenuItemSettingsClick(object sender, EventArgs e)
        {
            if (_settingsForm == null || _settingsForm.IsDisposed || !_settingsForm.IsHandleCreated)
            {
                _settingsForm          = new SettingsForm(_settings);
                _settingsForm.OkClick += (object s, SmartSystemMenuSettingsEventArgs ea) => { _settings = ea.Settings; };
            }

            _settingsForm.Show();
            _settingsForm.Activate();
        }
Example #27
0
 public SmartSystemMenuSettingsEventArgs(SmartSystemMenuSettings settings)
 {
     Settings = settings;
 }
Example #28
0
 private void InitializeControls(SmartSystemMenuSettings settings)
 {
     btnApply.Text = settings.LanguageSettings.GetValue("trans_btn_apply");
     Text          = settings.LanguageSettings.GetValue("trans_form");
 }
Example #29
0
        private void InitializeControls(WindowInfo windowInfo, SmartSystemMenuSettings settings)
        {
            grpWindow.Text             = settings.LanguageSettings.GetValue("grp_window");
            grpProcess.Text            = settings.LanguageSettings.GetValue("grp_process");
            lblGetWindowText.Text      = settings.LanguageSettings.GetValue("lbl_get_window_text");
            lblWmGetText.Text          = settings.LanguageSettings.GetValue("lbl_wm_gettext");
            lblGetClassName.Text       = settings.LanguageSettings.GetValue("lbl_get_class_name");
            lblRealGetWindowClass.Text = settings.LanguageSettings.GetValue("lbl_real_get_window_class");
            lblFontName.Text           = settings.LanguageSettings.GetValue("lbl_font_name");
            lblWindowHandle.Text       = settings.LanguageSettings.GetValue("lbl_window_handle");
            lblParentWindowHandle.Text = settings.LanguageSettings.GetValue("lbl_parent_window_handle");
            lblWindowSize.Text         = settings.LanguageSettings.GetValue("lbl_window_size");
            lblInstance.Text           = settings.LanguageSettings.GetValue("lbl_instance");
            lblProcessId.Text          = settings.LanguageSettings.GetValue("lbl_process_id");
            lblThreadId.Text           = settings.LanguageSettings.GetValue("lbl_thread_id");
            lblGclWndProc.Text         = settings.LanguageSettings.GetValue("lbl_gcl_wnd_proc");
            lblDwlDlgProc.Text         = settings.LanguageSettings.GetValue("lbl_dwl_dlg_proc");
            lblGwlStyle.Text           = settings.LanguageSettings.GetValue("lbl_gwl_style");
            lblGclStyle.Text           = settings.LanguageSettings.GetValue("lbl_gcl_style");
            lblGwlExStyle.Text         = settings.LanguageSettings.GetValue("lbl_gwl_exstyle");
            lblWindowInfoExStyle.Text  = settings.LanguageSettings.GetValue("lbl_windowinfo_exstyle");
            lblLwaAlpha.Text           = settings.LanguageSettings.GetValue("lbl_lwa_alpha");
            lblLwaColorKey.Text        = settings.LanguageSettings.GetValue("lbl_lwa_colorkey");
            lblGwlUserData.Text        = settings.LanguageSettings.GetValue("lbl_gwl_userdata");
            lblDwlUser.Text            = settings.LanguageSettings.GetValue("lbl_dwl_user");
            lblFullPath.Text           = settings.LanguageSettings.GetValue("lbl_full_path");
            lblCommandLine.Text        = settings.LanguageSettings.GetValue("lbl_command_line");
            lblStartedAt.Text          = settings.LanguageSettings.GetValue("lbl_started_at");
            lblOwner.Text          = settings.LanguageSettings.GetValue("lbl_owner");
            lblThreads.Text        = settings.LanguageSettings.GetValue("lbl_threads");
            lblWorkingSetSize.Text = settings.LanguageSettings.GetValue("lbl_working_set_size");
            lblParent.Text         = settings.LanguageSettings.GetValue("lbl_parent");
            lblPriority.Text       = settings.LanguageSettings.GetValue("lbl_priority");
            lblHandles.Text        = settings.LanguageSettings.GetValue("lbl_handles");
            lblVirtualSize.Text    = settings.LanguageSettings.GetValue("lbl_virtual_size");
            lblProductName.Text    = settings.LanguageSettings.GetValue("lbl_product_name");
            lblCopyright.Text      = settings.LanguageSettings.GetValue("lbl_copyright");
            lblFileVersion.Text    = settings.LanguageSettings.GetValue("lbl_file_version");
            lblProductVersion.Text = settings.LanguageSettings.GetValue("lbl_product_version");
            btnOk.Text             = settings.LanguageSettings.GetValue("information_btn_apply");
            Text = settings.LanguageSettings.GetValue("information");

            var nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();;

            nfi.NumberGroupSeparator   = ",";
            txtGetWindowText.Text      = windowInfo.GetWindowText;
            txtWmGetText.Text          = windowInfo.WM_GETTEXT;
            txtGetClassName.Text       = windowInfo.GetClassName;
            txtRealGetWindowClass.Text = windowInfo.RealGetWindowClass;
            txtFontName.Text           = windowInfo.FontName;
            txtWindowHandle.Text       = string.Format("0x{0:X}", windowInfo.Handle.ToInt64());
            txtParentWindowHandle.Text = string.Format("0x{0:X}", windowInfo.ParentHandle.ToInt64());
            txtWindowSize.Text         = string.Format("{0} x {1}", windowInfo.Size.Width, windowInfo.Size.Height);
            txtInstance.Text           = string.Format("0x{0:X}", windowInfo.Instance.ToInt64());
            txtProcessId.Text          = string.Format("0x{0:X} ({0})", windowInfo.ProcessId);
            txtThreadId.Text           = string.Format("0x{0:X} ({0})", windowInfo.ThreadId);
            txtGclWndProc.Text         = string.Format("0x{0:X}", windowInfo.GCL_WNDPROC);
            txtDwlDlgProc.Text         = string.Format("0x{0:X}", windowInfo.DWL_DLGPROC);
            txtGwlStyle.Text           = string.Format("0x{0:X}", windowInfo.GWL_STYLE);
            txtGclStyle.Text           = string.Format("0x{0:X}", windowInfo.GCL_STYLE);
            txtGwlExStyle.Text         = string.Format("0x{0:X}", windowInfo.GWL_EXSTYLE);
            txtWindowInfoExStyle.Text  = string.Format("0x{0:X}", windowInfo.WindowInfoExStyle);
            txtLwaAlpha.Text           = windowInfo.LWA_ALPHA ? "+" : "-";
            txtLwaColorKey.Text        = windowInfo.LWA_COLORKEY ? "+" : "-";
            txtGwlUserData.Text        = string.Format("0x{0:X}", windowInfo.GWL_USERDATA);
            txtDwlUser.Text            = string.Format("0x{0:X}", windowInfo.DWL_USER);
            txtFullPath.Text           = windowInfo.FullPath;
            txtCommandLine.Text        = windowInfo.CommandLine;
            txtStartedAt.Text          = windowInfo.StartTime == null ? "" : windowInfo.StartTime.Value.ToString("dd.MM.yyyy HH:mm:ss");
            txtOwner.Text          = windowInfo.Owner;
            txtParent.Text         = windowInfo.Parent;
            txtPriority.Text       = windowInfo.Priority.ToString();
            txtThreads.Text        = windowInfo.ThreadCount.ToString();
            txtHandles.Text        = windowInfo.HandleCount.ToString();
            txtWorkingSetSize.Text = ((decimal)windowInfo.WorkingSetSize).ToString("#,0", nfi);
            txtVirtualSize.Text    = ((decimal)windowInfo.VirtualSize).ToString("#,0", nfi);
            txtProductName.Text    = windowInfo.ProductName;
            txtCopyright.Text      = windowInfo.Copyright;
            txtFileVersion.Text    = windowInfo.FileVersion;
            txtProductVersion.Text = windowInfo.ProductVersion;
        }
Example #30
0
 public InfoForm(WindowInfo windowInfo, SmartSystemMenuSettings settings)
 {
     InitializeComponent();
     InitializeControls(windowInfo, settings);
 }