C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
2012-11-21 15:42
435 查看
拉一个NotifyIcon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。
添加一个ContextMenuStrip控件,然后设置notifyIcon1的属性ContextMenuStrip为你添加的contextMenuStrip1
如果不想让程序在任务栏中显示,请把窗体的属性ShowInTaskbar设置为false
网上好多文章讲的开机自启动并最小化托盘好多都是假的,并没有实现开机启动的时候最小化
经过今天一番研究,经验分享:
设置注册表启动时多加一项 命令行 -s(注:这个内容由你自定义,-a -b -abc 都行)
注册表效果如下
然后在program.cs中
然后Form1的load事件中判断 args,如果正常双击打开的话,是没有命令参数的,也就是args为空,此时让Form1显示,
如果是注册表开机启动的话,则args的值不为空,为命令行参数-s,此时应让Form1隐藏
代码如下:
以上代码本人亲测可用,请支持原创.!
添加一个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; }
网上好多文章讲的开机自启动并最小化托盘好多都是假的,并没有实现开机启动的时候最小化
经过今天一番研究,经验分享:
设置注册表启动时多加一项 命令行 -s(注:这个内容由你自定义,-a -b -abc 都行)
//加入注册表启动项 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"); } else { key.SetValue("xxx系统", this.GetType().Assembly.Location + " -s"); } key.Close();
注册表效果如下
然后在program.cs中
/// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(String[] args) //args获取启动命令行参数,传递给Form1 { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(args)); }
然后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; } }
以上代码本人亲测可用,请支持原创.!
相关文章推荐
- C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
- C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
- C#开机自启动时最小化到托盘,右击显示菜单
- C# WinForm窗口最小化到系统托盘 右键操作菜单
- C#实现winform软件开机自动启动并最小化到系统托盘
- C# winForm程序开机启动和托盘显示
- C# 开机自启动和最小化托盘显示
- C# winForm程序开机启动和托盘显示
- C# winForm程序开机启动和托盘显示
- C# winForm程序开机启动和托盘显示
- c# Winform窗体最小化的时候,出现在系统托盘里!
- C# WinForm窗口最小化到系统托盘 右键操作菜单
- C# Winform 左侧菜单右边显示、子窗体显示在主窗体(子窗体当控件添加到Panel)
- C# WinForm窗口最小化到系统托盘 右键操作菜单
- C#实现winform软件开机自动启动并最小化到系统托盘
- C# 最小化到托盘,托盘右击菜单显示
- WinForm 之 窗口最小化到托盘及右键图标显示菜单
- C#实现winform软件开机自动启动并最小化到系统托盘
- C#实现winform软件开机自动启动并最小化到系统托盘
- (WinForm)文件夹状态监控,最小化到托盘,开机自启动