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

public static class SettingHel
{
/// <summary>
/// 设置应用程序开机自动运行
/// </summary>
/// <param name="fileName">应用程序的文件名</param>
/// <param name="isAutoRun">是否自动运行,为false时,取消自动运行</param>
/// <exception cref="system.Exception">设置不成功时抛出异常</exception>
/// <returns>返回1成功,非1不成功</returns>
public static String SetAutoRun(string fileName, bool isAutoRun)
{
string reSet = string.Empty;
RegistryKey reg = null;
try
{
if (!System.IO.File.Exists(fileName))
{
reSet = "该文件不存在!";
}
string name = fileName.Substring(fileName.LastIndexOf(@"\") + );
reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
if (reg == null)
{
reg = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
}
if (isAutoRun)
{
reg.SetValue(name, fileName);
reSet = "";
}
else
{
reg.SetValue(name, false);
} }
catch (Exception ex)
{
//“记录异常”
}
finally
{
if (reg!=null)
{
reg.Close();
}
}
return reSet;
} }

设置.exe程序自动启动

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

一。主要功能:
(1)、程序启动自动隐藏到任务栏右侧通知栏显示。(与系统托盘同义)
(2)、双击系统托盘图标显示、隐藏窗口;
(3)、右击系统托盘图标提供三个菜单选项,“退出”、“隐藏”、“显示”;

二。相关控件:
1、建一个WinForm程序—IconForm,将Form属性ShowInTaskbar改为false,这样程序将不会在任务栏中显示。
2、将Form属性WindowState选择为
Minimized,以便起来自动最小化隐藏
3、在工具栏中的“公共控件”里,拖入NotifyIcon控件—notifyIcon1,这个是程序运行任务栏右侧通知区域图标显示控件,为控件notifyIcon的属性Icon添加一个icon图标,或从代码中加入。
4、在工具栏中的“菜单和工具栏”里,拖入ContextMenuStrip—contextMenuStrip1,这个控件是右击时关联菜单。
5、右键notifyIcon1选择属性,将其属性ContextMenuStrip改加为contextMenuStrip1,这个时候notifyIcon1和contextMenuStrip1两个控件就关联了。
6、右键contextMenuStrip1,选择属性,进入Items,然后点击“添加”,这里添加三个菜单选项:exitMenuItem、hideMenuItem、showMenuItem,同时分别将其Text属性改为:退出、隐藏和显示。

三。主要代码:
1、双击IconForm,即添加Load事件然后

//一 右击窗体,选择属性,转到事件页面,双击
Load,SizeChanged事件,给窗体添加代码
private
void Form1_Load(object sender, EventArgs
e)

{

//1.将Form属性ShowInTaskbar改为false,这样程序将不会在任务栏中显示。

//2.将Form属性WindowState选择为
Minimized,以便起来自动最小化隐藏。

string startup = Application.ExecutablePath;
//取得程序路径

int pp =
startup.LastIndexOf("\\");

startup = startup.Substring(0,
pp);

string icon = startup + "\\testIcon.ico";

//3.一定为notifyIcon1其设置图标,否则无法显示在通知栏。或者在其属性中设置

notifyIcon1.Icon = new Icon(icon);

}

private void
Form1_SizeChanged(object sender, EventArgs
e)

{
if
(this.WindowState ==
FormWindowState.Minimized)

{

this.Hide(); //或者是this.Visible =
false;

this.notifyIcon1.Visible =
true;

}

}

//二 双击窗体上的菜单项,添加相关代码
private
void exitMenuItem_Click(object sender, EventArgs
e)

{
if
(MessageBox.Show("你确定要退出程序吗?", "确认", MessageBoxButtons.OKCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) ==
DialogResult.OK)

{

notifyIcon1.Visible =
false;

this.Close();

this.Dispose();

Application.Exit();

}

}

private void
hideMenuItem_Click(object sender, EventArgs
e)

{

this.Hide();

}

private void
showMenuItem_Click(object sender, EventArgs
e)

{

this.Show();

this.WindowState =
FormWindowState.Normal;

this.Activate();

}

//三 转到窗体设计模式,右击notifyIcon1
,选择属性,双击其中DoubleClick,添加相关代码

private void notifyIcon1_DoubleClick(object sender, EventArgs
e)

{
if
(this.WindowState ==
FormWindowState.Normal)

{

this.WindowState =
FormWindowState.Minimized;

this.Hide();

}
else if
(this.WindowState ==
FormWindowState.Minimized)

{

this.Show();

this.WindowState =
FormWindowState.Normal;

this.Activate();

}

}

四。完整的代码如下:

using System;
using System.Collections.Generic;
using
System.ComponentModel;
using System.Data;
using System.Drawing;
using
System.Text;
using System.Windows.Forms;

namespace IconForm
{
public partial class Form1 :
Form
{

public Form1()

{

InitializeComponent();

}
//说明,程序运行后自动隐藏到任务栏右侧的通知栏里,
//1
右击选择退出,隐藏,显示
//2 双击可以隐藏和显示切换

//一 右击窗体,选择属性,转到事件页面,双击
Load,SizeChanged事件,给窗体添加代码
private
void Form1_Load(object sender, EventArgs
e)

{

//1.将Form属性ShowInTaskbar改为false,这样程序将不会在任务栏中显示。

//2.将Form属性WindowState选择为
Minimized,以便起来自动最小化隐藏。

string startup = Application.ExecutablePath;
//取得程序路径

int pp =
startup.LastIndexOf("\\");

startup = startup.Substring(0,
pp);

string icon = startup + "\\testIcon.ico";

//3.一定为notifyIcon1其设置图标,否则无法显示在通知栏。或者在其属性中设置

notifyIcon1.Icon = new Icon(icon);

}

private void
Form1_SizeChanged(object sender, EventArgs
e)

{
if
(this.WindowState ==
FormWindowState.Minimized)

{

this.Hide(); //或者是this.Visible =
false;

this.notifyIcon1.Visible =
true;

}

}

//二 双击窗体上的菜单项,添加相关代码
private
void exitMenuItem_Click(object sender, EventArgs
e)

{
if
(MessageBox.Show("你确定要退出程序吗?", "确认", MessageBoxButtons.OKCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) ==
DialogResult.OK)

{

notifyIcon1.Visible =
false;

this.Close();

this.Dispose();

Application.Exit();

}

}

private void
hideMenuItem_Click(object sender, EventArgs
e)

{

this.Hide();
}

private void
showMenuItem_Click(object sender, EventArgs
e)

{

this.Show();

this.WindowState =
FormWindowState.Normal;

this.Activate();

}

//三 转到窗体设计模式,右击notifyIcon1
,选择属性,双击其中DoubleClick,添加相关代码

private void notifyIcon1_DoubleClick(object sender, EventArgs
e)

{
if
(this.WindowState ==
FormWindowState.Normal)

{

this.WindowState = FormWindowState.Minimized;

this.Hide();

}
else if
(this.WindowState ==
FormWindowState.Minimized)

{

this.Show();

this.WindowState =
FormWindowState.Normal;

this.Activate();

}

}

}
}

C# winForm 开机自动启动 并启动后最小化到任务栏 右侧通知栏并交互操作的更多相关文章

  1. C# winForm启动最小化到任务栏右侧通知栏并交互操作

    原文链接:http://blog.sina.com.cn/s/blog_45eaa01a01013u36.html C# winForm启动最小化到任务栏右侧通知栏并交互操作 一.主要功能:(1).程 ...

  2. VC++ 实现VC程序启动时最小化到任务栏(完美解决闪烁问题)

    之前写的一个VC应用程序,是程序启动时就直接出现在任务栏, 窗体不出现,等用户点击任务栏图标再出现窗口.和一些防火墙什么的软件类似. 这种效果实现并不是很困难的,硬是找不到最好的.为什么呢? 首先,在 ...

  3. 如何去掉WinForm或者WPF的最大化和最小化按钮

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何去掉WinForm或者WPF的最大化和最小化按钮.

  4. C#实现WinForm禁止最大化、最小化、双击标题栏、双击图标等操作的方法

    from:http://www.jb51.net/article/71319.htm 本文实例讲述了C#实现WinForm禁止最大化.最小化.双击标题栏.双击图标等操作的方法.分享给大家供大家参考.具 ...

  5. Delphi如何让程序最小化到任务栏(截取WM_SYSCOMMAND后,调用Shell_NotifyIcon)

    现在很多的应用程序都有这样一种功能,当用户选择最小化窗口时,窗口不是象平常那样最小化到任务栏上,而是“最小化”成一个任务栏图标.象FoxMail 3.0 NetVampire 3.0等都提供了这样的功 ...

  6. C# 程序启动最小化至任务栏及闪烁

    主要功能: C#让窗体最小化至任务栏,同时在系统托盘区的图标点击左键能显示窗体,并使窗体闪烁. 首先: 创建窗体应用程序,并添加控件NotifyIcon及ContextMenuStrip控件 Noti ...

  7. Kubuntu中thunderbird最小化到任务栏

    作为邮件客户端,如果没有办法显示在任务栏中,实在是说不过去.遗憾的是thunderbird默认真不带这个功能(因为Linux的桌面系统太混乱了?)... 当然,解决也十分简单,只要安装Firetray ...

  8. 将VMware虚拟机最小化到托盘栏

    版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可.   目录 前言 将VMware最小化到托盘栏的方法 1.下载 Trayconizer 2.解压 trayco ...

  9. 将VMware工作站最小化到托盘栏

    目录 前言 将VMware最小化到托盘栏的方法 1.下载 Trayconizer 2.解压 trayconizerw.zip 3.创建 VMware 快捷方式 4.修改 VMware 快捷方式 5.运 ...

随机推荐

  1. [转] AS3地图拼接与战争迷雾的实现

    在开发游戏的过程中,特别是地图编辑器中,需要利用最少的资源,实现最丰富的地形地貌.虽然现在众多的RPG开始使用整图,但是我们偶尔还是需要能够让玩家自己编辑地图,或者其他需要自动进行地图构建的功能.另外 ...

  2. Dubbo与Zookeeper

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  3. bzoj 2242 [SDOI2011]计算器——BSGS模板

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2242 第一道BSGS! 咳咳,我到底改了些什么?…… 感觉和自己的第一版写的差不多……可能是 ...

  4. verilog学习五点经验分享

    1.规范很重要工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的.逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看 ...

  5. 使用PHP的GD2裁剪 + 缩放图片

    /** * 裁剪 + 缩放图片 * @param array $params 包含x,y,width,height,path * @return string */ public function t ...

  6. Python内置:items()方法

    文章转载于:https://www.cnblogs.com/wushuaishuai/p/7738118.html(博主:IT技术随笔) #Python3中已取消iteritems()方法 描述 Py ...

  7. linux 学习2 常用命令

    1.显示日期的指令: date 2.   [Tab]按键---具有『命令补全』不『档案补齐』的功能 3:  su和 sudo  su用于用户之间的切换.  su在不加任何参数,默认为切换到root用户 ...

  8. 2016.1.19 DEV Express控件GirdControl使用

    103.GridControl中添加Button RunDesigner,添加一列,设置对应字段FiledName,ColumnEdit选择ButtonEdit,此时默认风格像下拉框,需调整属性: 在 ...

  9. 第五章 JVM调优(待续)

    Java虚拟机内存模型 JVM内存分配参数 垃圾收集基础 常用调优案列和方法 实用JVM参数 实战JVM调优

  10. 数据库连接池在Tomcat中的几种配置方法

    数据库连接是一种关键的有限的昂贵的资源,这在多用户网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标,数据库连接池正是针对这个问题提出的. ...