C#开机自启动时最小化到托盘,右击显示菜单
来源:互联网 发布:软件大道租房 编辑:程序博客网 时间:2024/04/29 12:03
拉一个NotifyIcon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。
添加一个ContextMenuStrip控件,然后设置notifyIcon1的属性ContextMenuStrip为你添加的contextMenuStrip1
如果不想让程序在任务栏中显示,请把窗体的属性ShowInTaskbar设置为false
代码:
//最小化事件,显示到托盘
private void Form1_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Visible = false;
}
}
//托盘图标单击显示
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
this.Visible = true;
this.TopMost = true;
this.WindowState = FormWindowState.Normal;
this.Activate();
}
//假关闭,关闭时隐藏
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Visible = false;
}
网上好多文章讲的开机自启动并最小化托盘好多都是假的,并没有实现开机启动的时候最小化
经过今天一番研究,经验分享:
//加入注册表启动项
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
if (key == null)
{
key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
else
{
key.SetValue("xxx系统", this.GetType().Assembly.Location + " -s");
}
key.Close();
然后在program.cs中
然后Form1的load事件中判断 args,如果正常双击打开的话,是没有命令参数的,也就是args为空,此时让Form1显示,
如果是注册表开机启动的话,则args的值不为空,为命令行参数-s,此时应让Form1隐藏
代码如下:
String arg = null;
public Form1(String[] args)
{
if (args.Length > 0)
{
//获取启动时的命令行参数
arg = args[0];
}
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
if (arg != null)
{
//arg不为空,说明有启动参数,是从注册表启动的,则直接最小化到托盘
this.Visible = false;
this.ShowInTaskbar = false;
}
}
设置注册表启动时多加一项 命令行 -s(注:这个内容由你自定义,-a -b -abc 都行)
添加一个ContextMenuStrip控件,然后设置notifyIcon1的属性ContextMenuStrip为你添加的contextMenuStrip1
如果不想让程序在任务栏中显示,请把窗体的属性ShowInTaskbar设置为false
代码:
//最小化事件,显示到托盘
private void Form1_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Visible = false;
}
}
//托盘图标单击显示
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
this.Visible = true;
this.TopMost = true;
this.WindowState = FormWindowState.Normal;
this.Activate();
}
//假关闭,关闭时隐藏
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Visible = false;
}
网上好多文章讲的开机自启动并最小化托盘好多都是假的,并没有实现开机启动的时候最小化
经过今天一番研究,经验分享:
//加入注册表启动项
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
if (key == null)
{
key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
key.SetValue("xxx系统", this.GetType().Assembly.Location + " -s");
//key.DeleteValue("xxx系统");//删除注册表
else
{
key.SetValue("xxx系统", this.GetType().Assembly.Location + " -s");
}
key.Close();
然后在program.cs中
然后Form1的load事件中判断 args,如果正常双击打开的话,是没有命令参数的,也就是args为空,此时让Form1显示,
如果是注册表开机启动的话,则args的值不为空,为命令行参数-s,此时应让Form1隐藏
代码如下:
String arg = null;
public Form1(String[] args)
{
if (args.Length > 0)
{
//获取启动时的命令行参数
arg = args[0];
}
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
if (arg != null)
{
//arg不为空,说明有启动参数,是从注册表启动的,则直接最小化到托盘
this.Visible = false;
this.ShowInTaskbar = false;
}
}
设置注册表启动时多加一项 命令行 -s(注:这个内容由你自定义,-a -b -abc 都行)
- C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
- C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
- C#开机自启动时最小化到托盘,右击显示菜单
- MFC 最小化到托盘及右击托盘菜单
- C#程序开机自启以及最小化到托盘
- C# WinForm窗口最小化到系统托盘右击托盘图标弹出退出菜单
- Outlook 开机启动并最小化到托盘
- MFC窗口程序启动时最小化到托盘、不在任务栏中显示、显示时在右小角
- C# 托盘程序 实例 双击显示窗体,最小化到托盘
- C# 托盘程序 实例 双击显示窗体,最小化到托盘
- c#最小化到托盘
- OutLook设置签名,设置开机启动,最小化到托盘
- MFC程序启动时最小化到托盘
- c#中点击最小化时最小化到托盘后台运行
- c#中点击最小化时 最小化到托盘 后台运行
- C#最小化到托盘+双击托盘恢复
- c# winform最小化到托盘
- c#最小化到托盘代码
- 基于ZedBoard的智能加密系统设计1-设计概述
- 交换两个数不使用第三方变量=!!=深入理解按位异或运算符
- 那些年我们用过的邮箱
- HDU 1573 X问题 数论-(中国剩余定理)
- HttpClient通过Post上传文件
- C#开机自启动时最小化到托盘,右击显示菜单
- 计算最长回文子串
- 第二部分 Linux Shell高级编程技巧——第一章 深入讨论
- HDOJ 1728 逃离迷宫 (BFS)
- 在XML中定义菜单
- 黑马程序员 05 Java基础教学 - 05 - 面向对象(1) 之 类、对象、封装
- 小数转分数
- Oracle 10g创建数据库 用户等基本操作
- ubuntu10.04开发环境配置