C#代码设置开机启动示例

时间:2021-12-16 17:53:07 

在注册表启动项里添加一项,路径:SOFTWARE\Microsoft\Windows\CurrentVersion\Run
或者直接:运行->regedit找到这个路径添加一项。

C#代码设置开机启动示例


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

using Microsoft.Win32;

namespace CSharpStart
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnSet_Click(object sender, EventArgs e)
{
SetAutoRun(@"D:\CSharpStart.exe",true);
}

/// 设置应用程序开机自动运行
/// 应用程序的文件名
/// 是否自动运行,为false时,取消自动运行
/// 设置不成功时抛出异常
public static void SetAutoRun(string fileName, bool isAutoRun)
{
RegistryKey reg = null;
try
{
if (!System.IO.File.Exists(fileName))
throw new Exception("该文件不存在!");
String name = fileName.Substring(fileName.LastIndexOf(@"\") + 1);
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);
else
reg.SetValue(name, false);
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
finally
{
if (reg != null)
reg.Close();
}

}
//另外也可以写成服务,不过服务的话一般是在后台执行的,没有程序界面。 柯乐义

}
}

参考:
C# winform程序设置开机启动,当读取配置文件,或者加载图片如果设置的是相对路径时,开机启动时会出现问题(直接运程程序是没问题的)。这是因为开机启动的程序要使用绝对路径,相对路径不行。我们可以通过Application .StartupPath属性经过处理得到文件的绝对路径问题就解决了。

C# 通过读写注册表来设置开机启动想方法很简单,网上很多:


/// 开机启动项


/// 是否启动
/// 启动值的名称
/// 启动程序的路径
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//没有权限会异常
{ }
}
}

或者直接:


//添加启动
RegistryKey ms_run = Registry.LocalMachine.OpenSubKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Run", true);
ms_run.SetValue("mistysoft", Application.ExecutablePath.ToString());
//删除启动(设为控,注册表项还在)
RegistryKey ms_run = Registry.LocalMachine.OpenSubKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Run", true);
ms_run.SetValue("mistysoft", "");

标签:设置开机启动
0
投稿

猜你喜欢

  • 三行Android代码实现白天夜间模式流畅切换

    2021-06-11 08:15:12
  • SpringBoot整合Groovy脚本实现动态编程详解

    2023-04-02 03:24:16
  • Java微信公众平台开发(14) 微信web开发者工具使用

    2023-01-30 19:21:34
  • Java的split方法使用详解

    2021-10-03 06:09:57
  • Android 清除SharedPreferences 产生的数据(实例代码)

    2023-07-06 15:48:52
  • Java GC 机制与内存分配策略详解

    2022-06-12 05:36:44
  • android实现点击按钮控制图片切换

    2022-10-16 02:38:55
  • Android桌面插件App Widget用法分析

    2022-02-05 02:26:39
  • 解析ADT-20问题 android support library

    2023-06-19 22:20:20
  • 获取Spring的上下文环境ApplicationContext的最简单方式

    2023-04-17 18:14:40
  • 使用Java读取Word文件的简单例子分享

    2022-12-17 02:15:19
  • Java实现图片验证码功能

    2021-12-07 12:58:55
  • 深入了解Spring中的@Autowired和@Resource注解

    2021-09-19 06:57:20
  • JFinal使用ajaxfileupload实现图片上传及预览

    2023-08-05 08:30:48
  • @TransactionalEventListener的使用和实现原理分析

    2022-01-19 06:15:11
  • 基于C#实现简易的键盘记录器

    2023-07-02 21:32:41
  • Android利用属性动画实现优酷菜单

    2022-06-15 13:16:44
  • 基于获取JAVA路径,包括CLASSPATH外的路径的方法详解

    2022-12-20 21:30:03
  • java开发CPU流水线与指令乱序执行详解

    2023-07-01 19:59:23
  • Android Studio 运行按钮灰色的完美解决方法

    2023-08-16 05:59:42
  • asp之家 软件编程 m.aspxhome.com