C#获取快捷方式指向的目标文件

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

 

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

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

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

以下是具体步骤:

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

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







二、代码

用以下代码可以实现了。

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

 
分类: C#

 

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

转载 2016年09月12日 13:50:13

原文地址:http://www.cnblogs.com/DoNetCShap/p/4221854.html

 

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

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

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

以下是具体步骤:

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

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

 

二、代码

用以下代码可以实现了。

1、首先引用这些:

 

[csharp] view plain copy
 
  1. using System.IO;  
  2. using IWshRuntimeLibrary;  

 

2、编写函数:

 

[csharp] view plain copy
 
  1. private string 获取快捷方式文件指向的路径(string 快捷方式文件的路径)  
  2. {  
  3.     //快捷方式文件的路径 = @"d:\Test.lnk";  
  4.     if (System.IO.File.Exists(快捷方式文件的路径))  
  5.     {  
  6.         WshShell shell = new WshShell();  
  7.         IWshShortcut 当前快捷方式文件IWshShortcut类 = (IWshShortcut)shell.CreateShortcut(快捷方式文件的路径);  
  8.         //快捷方式文件指向的路径.Text = 当前快捷方式文件IWshShortcut类.TargetPath;  
  9.         //快捷方式文件指向的目标目录.Text = 当前快捷方式文件IWshShortcut类.WorkingDirectory;  
  10.         return 当前快捷方式文件IWshShortcut类.TargetPath;  
  11.     }  
  12.     else  
  13.     {  
  14.         return "";  
  15.     }  
  16. }   

 

参考的英文原文链接:

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

 
 

 

posted @ 2017-11-01 22:25  sky20080101  阅读(293)  评论(0)    收藏  举报