C# 实现程序开机自启动
2024-10-21 11:32:22
最近在做一个自动备份文件的小工具,需要用到开机自启动
下面是代码
private void checkBox8_CheckedChanged(object sender, EventArgs e)
{
try
{
//设置开机自启动
if (checkBox8.Checked == true)
{
/*方法一*/
string StartupPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonStartup);
//获得文件的当前路径
string dir = Directory.GetCurrentDirectory();
//获取可执行文件的全部路径
string exeDir = dir + @"\自动备份.exe.lnk";
File.Copy(exeDir, StartupPath + @"\自动备份.exe.lnk", true);
/*方法二*/
string path = Application.ExecutablePath;
RegistryKey rk = Registry.LocalMachine;
RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
rk2.SetValue("JcShutdown", path);
rk2.Close();
rk.Close(); }
//取消开机自启动
else
{
/*方法一*/
string StartupPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonStartup);
System.IO.File.Delete(StartupPath + @"\EcgNetPlug.exe.lnk");
/*方法二*/
string path = Application.ExecutablePath;
RegistryKey rk = Registry.LocalMachine;
RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
rk2.DeleteValue("JcShutdown", false);
rk2.Close();
rk.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
第一种方法原理是直接把可执行文件的快捷方式复制到系统的启动目录里,这种方式不会被安全软件拦截,不需要额外的权限
第二种方式是直接写注册表,这种方式可能会把安全软件拦截
大家可以自己试试,有问题可以留言,我也是边学边做
作者:逐梦
出处:http://www.cnblogs.com/huanjun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利
最新文章
- 高性能javascript学习笔记系列(5) -快速响应的用户界面和编程实践
- Android Soap实例
- 关于公司内部的Nuget服务
- [BZOJ1854][Scoi2010]游戏(二分图匹配/并查集)
- android 镜像源
- 关于CAShapeLayer的一些实用案例和技巧
- 基础面试题——HTML/CSS
- 使用Flexible实现手淘H5页面的终端适配【转】
- Linux学习系列之Linux入门(三)gcc学习
- mac下烦人的eclipse安装svn插件
- SDWebImage 原理及使用-b
- BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
- Allegro PCB Design GXL (legacy) 设置自动保存brd文件
- Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务
- 4、搭建Python环境
- 2015-09-16 html课程总结1
- profile,bashrc,.bash_profile,.bash_login,.profile,.bashrc,.bash_logout浅析 Part 2
- 2018-10-19 00:13:35 ArrayList
- swoole udp
- 数据结构(C语言)关于查找与排序