原文:https://www.cnblogs.com/GT_Andy/archive/2010/03/16/1921836.html
1.最小化到系统托盘
添加notifyIcon和contextMenuStrip
private void Form1_Load(object sender, EventArgs e)
{
WindowState = FormWindowState.Minimized; //最小化到系统托盘
}
//最小化
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized) //最小化到系统托盘
{
Visible = false;
notifyIcon1.Visible = true;
}
}
1.1.notifyIcon 设置:
1.2.NotifyIcon 双击弹出软件
//NotifyIcon 双击弹出软件
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "GetForegroundWindow", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetF(); //获得本窗体的句柄
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
public static extern bool SetF(IntPtr hWnd); //设置此窗体为活动窗体
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
Visible = true;
WindowState = FormWindowState.Normal;
Show();
if (this.Handle != GetF()) //如果本窗口没有获得焦点
SetF(this.Handle); //设置本窗口获得焦点
}
1.3.contextMenuStrip 设置:
//右键小图标菜单 - 退出
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
2.开机自启动
//开机启动
private void checkBoxReboot_CheckedChanged(object sender, EventArgs e)
{
string R_startPath = Application.ExecutablePath;
if (checkBoxReboot.Checked == true)
{
RegistryKey R_local = Registry.LocalMachine;
RegistryKey R_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
R_run.SetValue("BirthdayTipF", R_startPath);
R_run.Close();
R_local.Close();
}
else
{
try
{
RegistryKey R_local = Registry.LocalMachine;
RegistryKey R_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
R_run.DeleteValue("BirthdayTipF", false);
R_run.Close();
R_local.Close();
}
catch (Exception ex)
{
MessageBox.Show("您需要管理员权限修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
throw;
}
}
}