代码改变世界

将程序加到启动组

  观海看云  阅读(236)  评论(0编辑  收藏  举报
将程序加到启动组
 
有时需要将程序设置成随系统启动,最简单的一种就是放在 程序-->启动组里面。

其实就是创建一个快捷方式而已, 呵呵

我们需要一个 com 组件, 名叫 "Window Script Host Object Model ", 将它加入引用中

代码就很简单了, 为了方便调用, 将它写成一个函数
/**//// <summary>
        
/// 将程序的快捷方式添加到启动组
        
/// </summary>
        
/// <param name="fullPath">程序全路径</param>
        private void AddShortCutToStartup(string fullPath)
        
{
            
if (string.IsNullOrEmpty(fullPath))
                
return;
             IWshRuntimeLibrary.WshShell shell
= new IWshRuntimeLibrary.WshShell();
            
try
            
{
                
//取得快捷方式的路径
                
//快捷方式其实是一个后缀为 lnk 的文件
                string link = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup)
             , Path.GetFileNameWithoutExtension(fullPath)
+ ".lnk");
                
if (!File.Exists(link))
                
{
                     IWshRuntimeLibrary.IWshShortcut shortCut
= (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(link);
                    
//设置目标路径
                    
//shortCut 还有很多方法,比如 HotKey, IconLocation 等等,不再赘述
                     shortCut.TargetPath = fullPath;
                     shortCut.WindowStyle
= 1;
                     shortCut.Save();
                 }

             }

            
catch (Exception ex)
            
{
                 log.Error(
"AddShortCutToStartup Error: " + ex.Message);
             }

         }

如果要将本程序做成自启动, 只需要在 Form_Load 中加一行代码就行了

AddShortCutToStartup(Application.ExecutablePath);
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示