| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using Microsoft.Win32;
- namespace Автозагрузка
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- /// <summary>
- /// добавление/удаление из автозагрузки
- /// </summary>
- /// <param name="nameApp">имя приложения</param>
- /// <param name="autorun">
- /// True - добавить в автозагрузку
- /// False - удалить из автозагрузки
- /// </param>
- void SetAutorun(string nameApp, bool autorun)
- {
- // открыть ключ для записи
- RegistryKey k = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
- // добавление в автозагрузку
- if (autorun)
- {
- // имя exe-файла текущего приложения с путем доступа
- string exeFileCurrentApp = Application.ExecutablePath;
- k.SetValue(nameApp, $"\"{exeFileCurrentApp}\" tray");
- }
- else
- {
- // удалить из автозагрузки
- k.DeleteValue(nameApp, false);
- }
- k.Close();
- }
- private void cbxAutorun_CheckedChanged(object sender, EventArgs e)
- {
- SetAutorun("MyApplication", cbxAutorun.Checked);
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- // открыть ключ автозагрузки
- RegistryKey k = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
- // если есть "MyApplication", то установить CheckBox
- cbxAutorun.Checked = k.GetValue("MyApplication") != null;
- // закрыть ключ
- k.Close();
- // параметры, передаваемые в приложение
- string[] arg = Environment.GetCommandLineArgs();
- // если приложению передаются параметры
- if (arg.Length > 1)
- {
- // если приложение запущено из автозагрузки (массив arg содержит tray)
- if (arg.Contains("tray"))
- {
- // свернуть окно приложения
- this.WindowState = FormWindowState.Minimized;
- this.ShowInTaskbar = false; // убрать с панели задач
- }
- }
- }
-
- private void Form1_Resize(object sender, EventArgs e)
- {
- if (this.WindowState == FormWindowState.Minimized)
- {
- notifyIcon1.Visible = true;
- this.Hide(); // скрыть форму
- }
- }
- private void Form1_FormClosing(object sender, FormClosingEventArgs e)
- {
-
- }
- private void notifyIcon1_DoubleClick(object sender, EventArgs e)
- {
- this.Show(); // показать форму
- this.WindowState = FormWindowState.Normal;
- notifyIcon1.Visible = false; // выключить пиктограмму
- this.ShowInTaskbar = true; // отображать форму на панели задач
- }
- }
- }
|