首页 > 编程语言 >快捷方式工具类 - C#小函数类推荐

快捷方式工具类 - C#小函数类推荐

时间:2024-11-19 13:45:16浏览次数:1  
标签:shell 函数 C# 路径 shortcut var 快捷方式 string

       此文记录的是快捷方式操作类。

/***

    快捷方式工具类

    Austin Liu 刘恒辉
    Project Manager and Software Designer

    E-Mail: [email protected]
    Blog:   http://lzhdim.cnblogs.com
    Date:   2024-01-15 15:18:00

    使用参考:
        ShortCutUtil.CreateShortcut("D:\\LzhdimSoft\\LzhdimSoft.lnk", Application.ExecutablePath);

***/

namespace Lzhdim.LPF.Utility
{
    using System;
    using System.IO;

    /// <summary>
    /// 快捷方式工具类
    /// </summary>
    public class ShortCutUtil
    {
        /// <summary>
        /// 按指定路径创建快捷方式
        /// </summary>
        /// <param name="lnkFullPath">快捷方式绝对路径</param>
        /// <param name="appPath">应用所在路径</param>
        /// <param name="startupArgs">快捷方式启动参数</param>
        public static void CreateShortcut(string lnkFullPath, string appPath, string startupArgs = "")
        {
            var shellType = Type.GetTypeFromProgID("WScript.Shell");
            dynamic shell = Activator.CreateInstance(shellType);
            var shortcut = shell.CreateShortcut(lnkFullPath);
            var exeName = Path.GetFileName(appPath);
            var exeDir = Path.GetDirectoryName(appPath);
            // 工作目录和目标路径可以自由指定,注意TargetPath必须是exe的绝对路径
            shortcut.WorkingDirectory = exeDir;
            shortcut.TargetPath = Path.Combine(exeDir, exeName);
            shortcut.Arguments = startupArgs;
            //shortcut.iconLocation = appPath;
            shortcut.Save();
        }

        /// <summary>
        /// 根据快捷方式路径获取对应的应用路径
        /// </summary>
        /// <param name="shortcutPath">快捷方式文件路径</param>
        /// <returns>快捷方式对应的应用路径</returns>
        public static string GetTargetPathFromShortcut(string shortcutPath)
        {
            string targetPath = string.Empty;
            Type t = Type.GetTypeFromProgID("WScript.Shell");
            dynamic shell = Activator.CreateInstance(t);
            dynamic shortcut = shell.CreateShortcut(shortcutPath);
            targetPath = shortcut.TargetPath;
            return targetPath;
        }
    }
}

 

标签:shell,函数,C#,路径,shortcut,var,快捷方式,string
From: https://www.cnblogs.com/lzhdim/p/18340714

相关文章

  • moveit 报错what(): parameter ‘robot_description_planning.joint_limits.Left_Arm_
    使用moveit_setup_assistant配置moveit2包在humble下会出现错误,在config目录下的joint_limit.yamls文件#joint_limits.yamlallowsthedynamicspropertiesspecifiedintheURDFtobeoverwrittenoraugmentedasneeded#Forbeginners,wedownscalevelocitya......
  • PyCharm2024.1.4专业版Windows安装激活教程
    前言​ 本教程适用于Pycharm2024.1.x版本,笔者本次安装的是2024.1.4Professional,亲测可用,打开后可看到界面显示已经激活到2099年。下载Pycharm安装包及激活脚本​ 进入jetbrains官网历史版本下载页面:https://www.jetbrains.com/pycharm/download/other.html,下拉找到2024.1......
  • ctf show-web57
    这题相较于55过滤了更多的东西,但是flag在36.php中,并且不需要php,所以我们需要在绕过过滤的同时,构造一个36,这里就要知道linux下的运算$(())是算术扩展,允许你对数值进行加法、减法、乘法、除法等算术运算,并输出结果。$((~$((“”))))表达式解析:$((~$((""))))可以分为几......
  • ctfshow web-75
     由于本题过滤了strlen,没办法使用web72的uaf的方式绕过命令执行的限制连接数据库查询,通过构造一个可以连接数据库的php脚本,来查询数据库内的数据try{  //使用PDO(PHPDataObjects)创建一个新的数据库连接对象,指定DSN、用户名(root)和密码(root)  $dbh=newPDO('my......
  • 接口控制器层(Controller层)设计(网文)
    在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台Controller接口,或者提供Controller接口给第三方平台调用。那么问题来了,如果设计一个优雅的Controller接口,能够满足:安全性、可重复调用、稳定性、好定位问题等多方面需求?今天跟大家一起聊聊设计Controller接口时,......
  • Oracle DBA必须会的50道面试题
    基础知识Oracle数据库的架构由哪些主要组件组成?请简要描述它们的功能。什么是表空间(Tablespace)?如何创建和管理表空间?Oracle中的实例(Instance)和数据库(Database)有什么区别?解释Oracle的多版本并发控制(MVCC)是什么,它是如何工作的?Oracle数据库中有哪些常见的数据类......
  • Oracle AWR 报告指标全解析:深入理解数据库性能优化的关键
    一、引言在Oracle数据库管理与性能优化领域,AWR(AutomaticWorkloadRepository)报告扮演着极为重要的角色。它犹如一位精准的诊断专家,能够对数据库的运行状况进行全面、细致的剖析,为数据库管理员(DBA)提供丰富且关键的信息,助力其深入洞察数据库的性能表现,精准定位潜在问题,并......
  • net MVC ActionResultObjectValueAttribute
    MVC返回结果IActionResultIActionResult派生类如下......
  • Asp.net Core Hosted Service(托管服务) Timer (定时任务)
    HostedService托管服务要继承IHostedService或继承BackgroundService》》》定义一个后台托管服务///<summary>///自定义后台任务类///</summary>publicclassMyHostedService:BackgroundService{///<summary>///执行任务///</summary......
  • 推荐一款提供web界面支持内网穿透的任务调度软件jiascheduler
    jiascheduler简体中文 · English一个用rust编写的开源高性能,可扩展,动态配置的任务调度器,支持同时推送用户脚本到数以万计的实例运行,并实时收集执行的结果。jiascheduler执行脚本的节点不需要都在同一个网络,其内部设计了一个精巧的网络穿透模型可以用一个控制台管理不同......