C#做的软件如何在代码中设置开机启动
发布网友
发布时间:2022-05-11 17:15
我来回答
共3个回答
热心网友
时间:2023-10-16 01:01
可以使用注册表,给你注册表关于程序自启动的一些技术参考。
Load注册键
它也能够自动启动程序
位置:HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load。
Userinit注册键
位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion \Winlogon\Userinit。这里也能够使系统启动时自动初始化程序。通常该注册键下面有一个userinit.exe,如图,但这个键允许指定用逗号分隔的多个程序,例如“userinit.exe,OSA.exe”(不含引号)。
Explorer\Run注册键
和load、Userinit不同,Explorer\Run键在HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE 下都有,具体位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion \Policies\Explorer\Run,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\Policies\Explorer\Run。
RunServicesOnce注册键
RunServicesOnce注册键用来启动服务程序,启动时间在用户登录之前,而且先于其他通过注册键启动的程序。 RunServicesOnce注册键的位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows \CurrentVersion\RunServicesOnce,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\RunServicesOnce。
RunServices注册键
RunServices注册键指定的程序紧接RunServicesOnce指定的程序之后运行,但两者都在用户登录之前。 RunServices的位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows \CurrentVersion\RunServices,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\RunServices。
RunOnce\Setup注册键
RunOnce\Setup指定了用户登录之后运行的程序,它的位置是:HKEY_CURRENT_USER\Software \Microsoft\Windows\CurrentVersion\RunOnce\Setup,和HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup。
RunOnce注册键
安装程序通常用RunOnce键自动运行程序,它的位置在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\RunOnce和HKEY_CURRENT_USER\Software\Microsoft \Windows\CurrentVersion\RunOnce。HKEY_LOCAL_MACHINE下面的RunOnce键会在用户登录之后立即运行程序,运行时机在其他Run键指定的程序之前。HKEY_CURRENT_USER下面的RunOnce键在操作系统处理其他Run键以及“启动”文件夹的内容之后运行。如果是XP,你还需要检查一下HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\RunOnceEx。
Run注册键
Run是自动运行程序最常用的注册键,位置在:HKEY_CURRENT_USER\Software\Microsoft\Windows \CurrentVersion\Run,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\Run。HKEY_CURRENT_USER下面的Run键紧接HKEY_LOCAL_MACHINE下面的Run键运行,但两者都在处理“启动”文件夹之前。
热心网友
时间:2023-10-16 01:01
把C#的运行程序当做一个服务,添加到服务里面去。
热心网友
时间:2023-10-16 01:02
using Microsoft.Win32;
/// <summary>
/// 开机启动项
/// </summary>
/// <param name="Started">是否启动</param>
/// <param name="name">启动值的名称</param>
/// <param name="path">启动程序的路径</param>
public void RunWhenStart(bool Started, string name, string path)
{
RegistryKey HKLM = Registry.LocalMachine;
RegistryKey Run = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
if (Started == true)
{
try
{
Run.SetValue(name, path);
HKLM.Close();
}
catch
{
}
}
else
{
try
{
Run.DeleteValue(name);
HKLM.Close();
}
catch
{
}
}
}
我是在关这程序时加上去的
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
RunWhenStart(chk_qidong.Checked, "监视狗", System.Windows.Forms.Application.ExecutablePath);
base.Dispose(disposing);//chk_qidong.Checked 这是一个bool值 "监视狗"是名称 System.Windows.Forms.Application.ExecutablePath是程序路径
}