基本信息
文件名称:C#实现软件开机自启动的示例代码.docx
文件大小:18.55 KB
总页数:8 页
更新时间:2025-05-20
总字数:约6.53千字
文档摘要

C#实现软件开机自启动的示例代码

目录原理简介使用方法完整代码

原理简介

本文参考C#/WPF/WinForm/程序实现软件开机自动启动的两种常用方法,将里面中的第一种方法做了封装成AutoStart类,使用时直接两三行代码就可以搞定。

自启动的原理是将软件的快捷方式创建到计算机的自动启动目录下(不需要管理员权限),这种方法更加通用、限制更少。

使用方法

使用方法如下:

//快捷方式的描述、名称的默认值是当前的进程名,自启动默认为正常窗口,一般情况下不需要手动设置

//设置快捷方式的描述,

AutoStart.Instance.QuickDescribe=软件描述;

//设置快捷方式的名称

AutoStart.Instance.QuickName=软件名称;

//设置自启动的窗口类型,后台服务类的软件可以设置为最小窗口

AutoStart.Instance.WindowStyle=WshWindowStyle.WshMinimizedFocus;

//快捷方式设置true时,有就忽略、没有就创建,自启动快捷方式只能存在一个

//设置开机自启动,true自启动,false不自启动

AutoStart.Instance.SetAutoStart(SysParam.Instance.OnOff);

//设置桌面快捷方式,true创建桌面快捷方式(有就跳过,没有就创建),false删除桌面快捷方式

AutoStart.Instance.SetDesktopQuick(true);

完整代码

引用以下命名空间:

//添加引用,在Com中搜索WindowsScriptHostObjectModel

usingIWshRuntimeLibrary;

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Diagnostics;

usingSystem.IO;

AutoStart类代码:

publicclassAutoStart

#region公开

///summary

///唯一实例,也可以自定义实例

////summary

publicstaticAutoStartInstance{get;privateset;}=newAutoStart();

///summary

///快捷方式描述,默认值是当前的进程名

////summary

publicstringQuickDescribe{get;set;}=Process.GetCurrentProcess().ProcessName;

///summary

///快捷方式名称,默认值是当前的进程名

////summary

publicstringQuickName{get;set;}=Process.GetCurrentProcess().ProcessName;

///summary

///自启动窗口类型,默认值是正常窗口

////summary

publicWshWindowStyleWindowStyle{get;set;}=WshWindowStyle.WshNormalFocus;

///summary

///设置开机自动启动-只需要调用改方法就可以了参数里面的bool变量是控制开机启动的开关的,默认为开启自启启动

////summary

///paramname=onOff自启开关/param

publicvoidSetAutoStart(boolonOff=true)

if(onOff)//开机启动

//获取启动路径应用程序快捷方式的路径集合

ListstringshortcutPaths=GetQuickFromFolder(systemStartPath,appAllPath);

//存在2个以快捷方式则保留一个快捷方式-避免重复多于

if(shortcutPaths.Count=2)

for(inti=1;ishortcutPaths.Count;i++)

DeleteFile(shortcutPaths[i]);

elseif(shortcutPaths.Count1)//不存在则创建快捷方式

CreateShortcut(system