首页 > 编程语言 >C# 给当前程序创建桌面快捷方式

C# 给当前程序创建桌面快捷方式

时间:2024-10-22 10:20:27浏览次数:1  
标签:桌面 C# System shortcut static 快捷方式 CreateShortcut

C# 给当前程序创建桌面快捷方式

//by wgscd

//date 2024-10-22

using System;
using System.Reflection;
using System.IO;
namespace TestApp
{  
   public  class AppShortcutHelper
    {
 

        private static string lnkFullPath  = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), Config.softTitle + ".lnk");
        /// <summary>
        /// 给当前程序创建快捷方式
        /// </summary>
        /// <param name="lnkFullPath">快捷方式绝对路径</param>
        /// <param name="startupArgs">快捷方式启动参数</param>
        public static void CreateShortcut()
        {
            try
            {
                string  exeName = $"{Assembly.GetExecutingAssembly().GetName().Name}.exe"; 
                var exeDir = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
                var shellType = Type.GetTypeFromProgID("WScript.Shell");
                dynamic shell = Activator.CreateInstance(shellType);
                var shortcut = shell.CreateShortcut(lnkFullPath);
                // 工作目录和目标路径可以自由指定,注意TargetPath必须是exe的绝对路径
                shortcut.WorkingDirectory = exeDir;
                shortcut.TargetPath = Path.Combine(exeDir, exeName);
                shortcut.Arguments = "";
                shortcut.Save();
            }
            catch 
            { 
            
            }

        }
        public static bool  Exists()
        {
            return File.Exists(lnkFullPath);
        }





    }
}

  

调用:

  if (!AppShortcutHelper.Exists())
  {
      AppShortcutHelper.CreateShortcut();
  }

  

 

标签:桌面,C#,System,shortcut,static,快捷方式,CreateShortcut
From: https://www.cnblogs.com/wgscd/p/18492036

相关文章

  • HTML+CSS实现点赞效果
    效果演示HTML+CSS实现点赞效果HTML<divclass="heart-container"title="Like"><inputtype="checkbox"class="checkbox"id="Give-It-An-Id"><divclass="svg-container"><svgview......
  • 1day未公开HCM Cloud - 云端专业人力资源平台任意文件读取漏洞
    0x01阅读须知        本文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考。本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁......
  • 网神SecGate 3600防火墙 app_av接口存在任意文件上传漏洞
     0x01阅读须知        技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用......
  • PbootCMS首页可以打开内页打不开怎么解决
    问题表现内页404错误打开内页时跳转到首页原因伪静态规则没有配置好解决方法IIS服务器:将 web.config 文件移动到网站根目录。Apache服务器:将 .htaccess 文件移动到网站根目录。Nginx服务器:将 nginx.txt 文件中的内容复制到Nginx的配置文件......
  • PbootCMS未完全更新但提示已是最新版本解决办法
    问题表现用户在更新PbootCMS时,由于网络问题或其他原因导致更新一半没有完全更新。再次检测升级时,系统提示已经是最新版本,但实际上部分文件未更新。原因更新过程中断导致部分文件未被更新,但版本号文件 version.php 已经被更新,因此系统认为已经是最新版本。解决方法......
  • DNARY.MDB 是一个数据库文件,通常使用 Microsoft Access 或其他兼容的数据库管理系统来
    DNARY.MDB是一个数据库文件,通常使用MicrosoftAccess或其他兼容的数据库管理系统来创建和管理。以下是一些关于.MDB文件格式的详细信息,以及它可能的用途和特性:什么是 .MDB 文件?文件扩展名:.MDB 是MicrosoftAccess数据库文件的扩展名,代表"MicrosoftDatabase"。数据......
  • 从0到1实现项目Docker编排部署
    在深入讨论Docker编排之前,首先让我们了解一下Docker技术本身。Docker是一个开源平台,旨在帮助开发者自动化应用程序的部署、扩展和管理。自2013年推出以来,Docker迅速发展成为现代软件开发和运维领域不可或缺的重要工具。Docker采用容器技术,将应用程序及其所有依赖项封装......
  • Ambari 2.8.0已经支持dolphinscheduler 3.2.2 了?
    ......
  • 该怎么设计,PCB才能过100A的电流?
    更多电路设计,PCB设计分享及分析,可关注本人微信公众号“核桃设计分享”!对于没参加工作的小伙伴来说,很少能接触到高功率的项目,特别是要求在PCB上过高电流的实例。今天就和大伙聊一聊怎么设计PCB,才能满足100A的要求。首先要知道PCB都是通过整张铜箔来实现线路流通的,常规的铜箔......
  • cmake学习笔记
    最近在学cmake的用法,参考了cmake使用详细教程(日常使用这一篇就足够了)这篇文章,这篇文章讲的很仔细,下面记录自己的学习过程。1、系统以及开发工具一开始想通过虚拟机安装Ubuntu和vscode,后面想到了之前本机Windows安装过wsl,wsl的就是Ubuntu,在wsl+本地vscode的开发下,很快就把文章......