图解winform打包程序
要打包的程序的界面和后台代码截图。
(图1)
(图2)
功能代码解释。
最小化到托盘
如(图3)所示,必须先从工具栏中将NotifyIcon控件拖到winForm窗体(如:图1)中。然后如(图4)所示在NotifyIcon的click事件中写如(图5)所示代码。接着如(图6)所示在winform窗体的SizeChanged事件中写如(图5)所示代码。
(图3)
(图4)
(图5)
(图6)
附代码:
#region 最小化到托盘
private void Form1_Load(object sender, EventArgs e)
{
= new (ponents);
= new Icon("");//指定一个图标
= false;
+= new ();
+= new ();
}
private void notifyIcon1_Click(object sender, EventArgs e)
{
if (WindowState == )
{
= false;
}
();
ShowInTaskbar = true;
WindowState = ;
}
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (WindowState == )
{
= true;
ShowInTaskbar = false;
}
}
#endregion
开机自启动功能。
原理:将要启动的程序写入到配置服务的注册表中。注意:如(图8)所示,如果写的名称不对,则本功能就实现不了,因为要执行的程序不是这个程序。
(图7)
(图8)
如下图代码所示:
public Form1()
{
ponent();
//判断注册表中是否有此值
bool exists = RegeditDirIsExist("");
if (exists)
{
WriteRegName();//写入开机自启动注册表
}
();//检测登陆帐户
();//检测合同是否过期
}
#region 开机自动执行
/// <summary>
/// 判断启动项目录是否存在
/// </summary>
/// <param name="dirName"></param>
/// <returns></returns>
bool RegeditDirIsExist(string dirName)
{
RegistryKey key;
RegistryKey subkey;
key = ;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
subkey = (fullDir, true);
foreach (string keys in ())
{
if (() == ())
{
return true;
}
}
return false;
}
/// <summary>
/// 写键值
/// </summary>
void WriteRegName()
{
string DirectoryName = (); //获取当前目录
string r
非常详细的图解winform打包程序 来自淘豆网m.daumloan.com转载请标明出处.