C# winForm程序开机启动和托盘显示

C#客户端(WinForm)开机自动启动实现 1.原理:需要开机自启动的程序,需要将其启动程序的路径写到注册表中指定的文件夹下 2. 写入注册表的两种方式 a.在生成安装程序时配置 b.在程序运行时,动态配置。 方法一:在生成安装程序时配置 右击安装编辑程序,在“视图”菜单中,选择“注册表”。通过右键菜单新建"键",创建出如图所示的路径。 右键Run,新建“字符串值”。为右侧的key命名(在注册表中不能重名),并在属性中... 阅读详情

此文章是本人转载,但还没有验证。

这段时间一直在学习C#,看了书然后又在网上看了N多大神些的blog,然后自己学着做了一个像QQ托盘图标那样的小功能的Demo:

        (1)、在窗口上点击关闭按钮或者最小化时将托盘显示;

        (2)、双击托盘图标显示窗口;

        (3)、右键点击托盘图标提供三个菜单选项,“退出”、“隐藏”、“显示”;

        (4)、程序可以设置开机启动,隐藏任务栏显示。就这四个小功能。

1、建一个WinForm程序—TestIconForm,将其属性ShowInTaskbar改为false,这样程序将不会在任务栏中显示;将MaximizeBox属性设置为false,屏蔽掉最大化按钮;把StartPosition属性改为CerternScreen,这样程序运行后,窗口将会居中显示。

2、在工具栏中的公共控件里,拖入NotifyIcon控件—testNotifyIcon,这个是程序运行任务栏右侧通知区域图标显示控件。

3、在工具栏中的菜单和工具栏里,拖入ContextMenuStrip—testContextMenuStrip,这个控件是右击时关联菜单。

4、右键testNotifyIcon选择属性,将其属性ContextMenuStrip改加为testContextMenuStrip,这个时候1和2两个步骤的两个控件就关联了,用于完成上面(3)功能。

5、右键testContextMenuStrip选择属性,进入Items,然后点击“添加”,这里添加三个菜单选项:exitMenuItem、hideMenuItem、showMenuItem,同时分别将其Text属性改为:退出、隐藏和显示。

准备工作就这些,下面是大致代码
 
//1)、双击TestIconForm,即添加Load事件然后
  
 private void Form1_Load(object sender, EventArgs e)
        {
            testNotifyIcon.Icon = new Icon("e:\\MyPicture\\testIcon.ico");
            //取得程序路径
            string startup = Application.ExecutablePath;

            //class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装
            RegistryKey rKey = Registry.LocalMachine;
            RegistryKey autoRun = rKey.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
            try
            {
                autoRun.SetValue("BookServer", startup);
                rKey.Close();
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

//添加Form_Closing,SizeChanged事件
   
private void Form1_FormClosing(object sender, FormClosingEventArgs e)  //关闭按钮事件
        {
            e.Cancel = true;
            this.Hide();
        }
        private void Form1_SizeChanged(object sender, EventArgs e)     //最小化事件按钮
        {
            this.Hide();
        }
 
//2)、给testNotifyIcon添加MouseDoubleClick事件
 
private void testNotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)            // 左键双击,显示
        {
            if (e.Button == MouseButtons.Left)
            {
                this.Show();
                this.WindowState = FormWindowState.Normal;
                this.Activate();
            }
        }
 
//3)、进入TestIconForm单击testContextMenuStrip,然后可以看到“退出”、“隐藏”、“显示”,分别双击,添加相应的事件
 
private void exitMenuItem_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("你确定要退出终端服务程序吗?", "确认", MessageBoxButtons.OKCancel,
                MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
            {
                testNotifyIcon.Visible = false;
                this.Close();
                this.Dispose();
                Application.Exit();
            }        
        }

        private void showMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();        
        }

        private void hideMenuItem_Click(object sender, EventArgs e)
        {
            this.Show();
            this.WindowState = FormWindowState.Normal;
            this.Activate();
        }

C#用winform窗口程序操作服务+不显示Form窗体,只显示右下角托盘图标+开机时自启动程序【附带项目地址】 1、点击“创建新项目”,选择“Windows 服务(.NET Framework)”2、给项目命名3、右击项目->添加->新建项,选择“应用程序清单文件(仅限Windows)4、双击第三步生成的app.manifest文件,将修改为5、右击项目->添加->新建项,选择“窗体(Windows窗体)6、双击Form1.cs文件,打开“Form1.cs[设计]”,选择左侧的工具箱->所有Windows窗体->Button(若不能拖动到Form上,则直接双击即可)7、引入两个文件。 阅读详情

相关推荐

C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单

拉一个NotifyIcon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。 添加一个ContextMenuStrip控件,然后设置notifyIcon1的属性ContextMenuStrip为你添加的contextMenuStrip1 如果不想让程序在任务栏中显示,请把窗体的属性ShowInTaskbar设置为false

li34442779的专栏 4673

C#实现状态栏提示信息功能

本功能是在winform平台上实现的,其他平台大同小异,不多做介绍。1.首先创建一个测试用winform窗体2.在winform窗体上添加一个notifyIcon控件然后设置notifyIcon属性,可自行修改其name属性,本文中name属性为notifyIcon1,注意此时点击查看ContextMenuStrip属性时显示的是无,所以我们还需要添加一个ContextMenuStrip控件此时再...

雨中深巷的油纸伞 1万+

C# 系统托盘气泡提示示例

希望小弟的微薄之力能对同道中人们有所帮助。

winform启动界面+登录窗口

需求场景:先展示启动界面,然后打开登录界面,如果登录成功就跳转到主界面 首先在程序的入口路径加载启动界面,使用ShowDialog显示界面, 然后在启动界面中添加定时器,来实现显示一段时间的效果,等到时间到了就关闭 启动界面的窗口。传递一个对象给登录界面,用来保存登录状态,显示登录界面, 如果登录成功就在登录界面中对这个传递进来的对象就行修改,这里使用1作为成功 的返回值,注意...

weixin_30241919的博客 1164

C# winform 开机自启动时最小化到托盘 双击显示窗体,右击显示菜单

C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单 每隔60秒自动调用服务

C#实现用托盘控制windows服务

这个例子既实现了系统托盘功能,也实现了多windows服务的控制,非常实用!

c# winform 打包部署 自定义界面 或设置开机启动

方法一: 创建安装部署这部分就不用说了,添加安装部署项目后,鼠标右键安装项目->视图->注册表, 要使软件在开机就运行,可以在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run中添加键值保存软件目录。在这里我们依次添加以上的项,然后在Run中添加键值,键名可以自己起,value要填软件的物理路径。物理路径是客户在部署确定

zexin1000的专栏 9381

wpf最小化到托盘的简单demo

一个简单的wpf最小化到托盘的实例,希望通过此demo给你带来帮助

C# winForm程序开机启动和托盘显示[转]

C# winForm程序开机启动和托盘显示[转] C# winForm程序开机启动和托盘显示 这段时间一直在学习C#,看了书然后又在网上看了N多大神些的blog,然后自己学着做了一个像QQ托盘图标那样的小功能的Demo: (1)、在窗口上点击关闭按钮或者最小化时将托盘显示; (2)、双击托盘图标显示窗...

weixin_30732825的博客 81

技术美术个人笔记(十六)——Houdini到UE的大地形

文章目录关于地形白模制作关于PDG流程 关于地形白模制作 用heightfield noise和笔刷刷出合适的mask做山形叠加: 用remap可快捷反转mask ,用来做平原地区的小型丘陵: 接着用clip切平最低处,用distort制造侵蚀等,对部分地区用笔刷进行微调拓宽峡谷: 用经过sweep打平的曲线以及裁切的各种多面体用heightfield_project投影制作河道和水池,用blur mask并remap的方法拓宽河道 用distort、erode制造合适的弯曲和侵蚀,同理可挖出月牙形

小谁的博客 3180

Synopsys AXI VIP 从环境搭建到首个验证场景运行

本文详细介绍了Synopsys AXI VIP从环境搭建到首个验证场景运行的全过程,包括VIP安装、示例工程生成、验证环境解析、仿真调试技巧及进阶优化。特别针对AXI协议验证中的常见问题提供了实用解决方案,帮助工程师快速掌握这一SoC验证必备工具。

weixin_29185493的博客 343

C# winForm 开机自动启动 并启动后最小化到任务栏 右侧通知栏并交互操作

//设置自动启动 string path = Application.StartupPath; SettingHel.SetAutoRun(path +@"\MostImpressive.DSCJ.DcbInterface.exe", true); public static class SettingHel { ...

556

RK3588设备树调试实战:解决NPU不加载、USB3.0识别异常与DP显示问题

本文深入探讨了RK3588设备树调试中的三大典型问题:NPU不加载、USB3.0识别异常与DP显示问题。通过详细的问题定位步骤、关键设备树修改和调试技巧,帮助开发者快速解决硬件适配中的挑战,提升RK3588平台的开发效率。

weixin_30576827的博客 477

Winform自启动最小化一个类搞定C#

C#中Winform自启动一个类搞定: Form1.AutoStart.cs 实现Winform的最小化, 自启动, 任务栏右键退出, 右键显示功能 把此类作为窗体类的部分类添加到项目里面就可以了

包子大叔的笔记 596

什么是 MDB-RS232,为什么需要 MDB-RS232适配器 ?

在您需要设计一个售货机,首先需要选择适合您机器的主板,比如安卓主板、树莓派、工控机或者PLC等,这些主板都是没有MDB接口的,而支付设备,比如你选择的纸币器,硬币器,都是MDB接口。那您就需要这个 MDB 适配器,来把MDB接口的支付设备连接到这些串口的主板上,进行通信和控制。MDB-RS232旨在将MDB 协议转换为 RS232 协议,并执行必要的电压转换以及数据路由工作。,能够让主板轻松执行其他任务,不需要考虑协议的具体软硬件的兼容和稳定性问题。专业的设计指导和协助协议分析,丰富的开发文档。

waferstar的博客 1382

医药领域知识图谱快速及医药问答项目(项目全过程)

该项目是中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目 Github项目地址:mirrors / liuhuanyong / qasystemonmedicalkg · GitCode 一、项目环境搭建 该部分要十分注意,由于版本升级的问题,一些用法及格式已经不兼容了。 python3.8 下载地址:Python Release Python 3.8.10 | Python.orght...

qq_52062182的博客 9917
上一篇: C# 初学者的 转折知识点
下一篇: 登录超过错误次数 等待时间段后重新登录
valeb
博客等级 码龄17年 16粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值