四联光电智能照明论坛
标题:
C#设置软件开机自动启动
[打印本页]
作者:
gxm771208
时间:
2016-10-28 10:29
标题:
C#设置软件开机自动启动
本帖最后由 gxm771208 于 2016-10-28 11:55 编辑
在winform上新建一个checkbox控件
添加响应消息
和如下代码:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked) //设置开机自启动
{
MessageBox.Show ("设置开机自启动,需要修改注册表","提示");
string path = Application.ExecutablePath;
RegistryKey rk = Registry.LocalMachine;
RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
rk2.SetValue("WorkAssist", path);
rk2.Close();
rk.Close();
}
else //取消开机自启动
{
MessageBox.Show ("取消开机自启动,需要修改注册表","提示");
string path = Application.ExecutablePath;
RegistryKey rk = Registry.LocalMachine;
RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
rk2.DeleteValue("WorkAssist", false);
rk2.Close();
rk.Close();
}
}
作者:
gxm771208
时间:
2016-10-28 10:39
using Microsoft.Win32;
作者:
gxm771208
时间:
2016-10-28 11:30
用
RegistryKey rk = Registry.LocalMachine;
需要管理员权限。
可以直接用
RegistryKey rk = Registry.CurrentUser;
金山词霸和QQ这些启动都是用的这个
或可以继续研究一下如何在程序中获得管理员权限
作者:
gxm771208
时间:
2016-10-28 11:54
该方法还没有在启动时判断是否已加入注册表自动启动,因此需要加入:
public void JudgeAutoStart()
{
string regpath = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
RegistryKey rk = Registry.CurrentUser;
RegistryKey rk2 = rk.OpenSubKey(regpath);
if (rk2.GetValue("WorkAssist") != null)
{
checkBox1.Checked = true;
}
else checkBox1.Checked = false;
}
并在Form_Load中加入该函数。
欢迎光临 四联光电智能照明论坛 (http://5xhome.com/)
Powered by Discuz! X3.2