zoukankan      html  css  js  c++  java
  • C#如何获取快捷方式指向的目标文件

    前几天,做个小程序时遇到的问题,在百度上搜索了很久,没有发现好的解决方案,在英文网站上立刻搜到办法,看来还是国外的资源要全面一些,只是Google经常访问不正常,没办法啊。

    C#如何获取快捷方式指向的目标文件”,这个问题在百度上搜索的大多数结果是打开快捷方式文件,把快捷方式文件按字节读入指数组中,然后自己编写代码逐字节读出目标文件路径,这种方法初学者就有点搞不清楚,特别是不了解捷方式文件组织方式的,用这个方法很费劲。

    其实C#解决起来很简单,原理就是利用IWshRuntimeLibrary中的IWshShortcut类,就可以获取快捷方式指向的目标文件了。

    以下是具体步骤:

    一、在项目中添加“Windows Script Host Object Model”的引用

    在项目上单击右键,选择“添加引用”,在“添加引用”对话框中选择“COM”组件选项卡,然后单击选择“Windows Script Host Object Model”,最后确定。在项目中就会出现“IWshRuntimeLibrary”,下面就可以编写代码了。

    技术贴:C#如何获取快捷方式指向的目标文件

    技术贴:C#如何获取快捷方式指向的目标文件

    技术贴:C#如何获取快捷方式指向的目标文件

    二、代码

    用以下代码可以实现了。

    1、首先引用这些:

    using System.IO;
    
    using IWshRuntimeLibrary;

    2、编写函数:

       

    private string 获取快捷方式文件指向的路径(string 快捷方式文件的路径)
            {
                //快捷方式文件的路径 = @"d:Test.lnk";
                if (System.IO.File.Exists(快捷方式文件的路径))
                {
                    WshShell shell = new WshShell();
                    IWshShortcut 当前快捷方式文件IWshShortcut类 = (IWshShortcut)shell.CreateShortcut(快捷方式文件的路径);
                    //快捷方式文件指向的路径.Text = 当前快捷方式文件IWshShortcut类.TargetPath;
                    //快捷方式文件指向的目标目录.Text = 当前快捷方式文件IWshShortcut类.WorkingDirectory;
                    return 当前快捷方式文件IWshShortcut类.TargetPath;
                }
                else
                {
                    return "";
                }
            } 

     

    我参考的英文原文链接:

    http://forums.overclockers.co.uk/showthread.php?t=17966879

  • 相关阅读:
    HDOJ2066 一个人的旅行 floyd
    手动添加数据源时DataGridViewComboBoxCell值出问题解决方法
    可伸缩的Form窗体!
    SharpMap项目Web控件学习!
    MVC和MVP的初步理解
    ArcEngine编辑功能(五)
    胡言乱语:实体具有继承关系的空间数据库设计方法?
    WinForm单例窗体的实现
    4. 模板模式和建造者模式
    Oracle笔记(0):在Win2008系统上安装Oracle11g实践
  • 原文地址:https://www.cnblogs.com/DoNetCShap/p/4221854.html
Copyright © 2011-2022 走看看