前几天,做个小程序时遇到的问题,在百度上搜索了很久,没有发现好的解决方案,在英文网站上立刻搜到办法,看来还是国外的资源要全面一些,只是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#如何获取快捷方式指向的目标文件的更多相关文章

  1. C# 1.将整个文件夹复制到目标文件夹中 2.将指定文件复制到指定目标文件夹中

    ].Items.Clear(); string filePath = Application.StartupPath; string sourcePath = Path.Combine(filePat ...

  2. 【转载】C#指定文件夹下面的所有内容复制到目标文件夹下面

    在涉及到文件夹操作的过程中,有时候需要将文件夹下的所有内容复制拷贝到另一个文件夹,在C#的开发中有时候会遇到这个功能需求将指定文件夹下所有的内容复制到另一个文件夹,这个过程需要遍历所有的文件和目录.此 ...

  3. C# 读取快捷方式指向的文件

    C# 读取快捷方式指向的文件 [Flags()] public enum SLR_FLAGS { SLR_NO_UI = 0x1, SLR_ANY_MATCH = 0x2, SLR_UPDATE = ...

  4. 无法获取指向控制台的文件描述符 (couldn't get a file descriptor referring to the console)

    背景 最近收拾东西,从一堆杂物里翻出来尘封四年多的树莓派 3B 主机来,打扫打扫灰尘,接上电源,居然还能通过之前设置好的 VNC 连上.欣慰之余,开始 clone 我的 git 项目,为它们拓展一个新 ...

  5. Lichee(三) Android4.0该产品的目标文件夹,Lichee链接---extract-bsp

    由<Lichee() 在sun4i_crane平台下的编译>介绍了编译lichee的基本情况,我们终于得到了编译后的结果例如以下: out/ ├── android │   ├── bIm ...

  6. linux 目标文件调试

    前言如果普通编程不需要了解这些东西,如果想精确控制你的对象文件的格式或者你想查看一下文件对象里的内容以便作出某种判断,刚你可以看一下下面的工具:objdump, nm, ar.当然,本文不可能非常详细 ...

  7. 1.预处理,生成预编译文件(.文件): Gcc –E hello.c –o hello.i 2.编译,生成汇编代码(.s文件): Gcc –S hello.i –o hello.s 3.汇编,生成目标文件(.o文件): Gcc –c hello.s –o hello.o 4.链接,生成可执行文件: linux笔记

    1 动态查看日志 tail -f filename tail -1000f filename 2 解压当前目录内容为xxx.zip  zip -r xxx.zip ./* 3 查看内存使用情况 fre ...

  8. linux c 链接详解1-多目标文件链接

    1. 多目标文件的链接 摘自:linux c编程一站式学习 http://learn.akae.cn/media/index.html 可以学会在linux下将多个c语言文件一起编译. 现在我们把例  ...

  9. linux下的 sudo ln -s 源文件 目标文件

    这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接. 这个命令最常用的参数是-s,具体用法是:sudo l ...

随机推荐

  1. Python学习 之 正则表达式

    1.简单的正则表达式 import re s=r'abc' re.findall(s,"aaaaaaaaaaaaaaa") #结果为[] re.findall(s,"ab ...

  2. cocos2dx libjson

    libjson下载 http://sourceforge.net/projects/libjson/ 下载解压后改名成libjson,用到的是根目录下面的JSONOptions.h.libjson.h ...

  3. 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)--转

    出处:http://blog.csdn.net/xxd851116/archive/2009/06/25/4296866.aspx [前面的话] 在网上经常看到有人对request.getSessio ...

  4. javascript 十六进制与RGB颜色值的相互转换

    http://www.zhangxinxu.com/wordpress/?p=646 http://www.zhangxinxu.com/wordpress/?p=646 -------------- ...

  5. http协议Authorization认证方式在Android开发中的使用

    我们都知道,http协议是一种无状态协议,在Web开发中,由于Session和Cookie的使用,使得服务端可以知道客户端的连接状态,即用户只需要在浏览器上登录一次,只要浏览器没有关闭,后续所有的请求 ...

  6. css笔记08:id选择器之父子选择器

    1.父子选择器 (1)01.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  7. 使用markdown及highlight

    一.markdown 安装markdown2 pip install markdown2 应用markdown2 进入blog APP,创建templatetags文件夹,在文件夹内创建__init_ ...

  8. mac端口占用查找进程并杀死

    查找端口port被占用的进程 lsof -i tcp:port 杀死进程pid kill -9 pid

  9. .NET平台数据持久层框架

    在.NET平台下的几个数据持久层框架: 1.NHibernate 2.NBear 3.Castle ActiveRecord 4.iBATIS.NET 5.DAAB 6.DLinq

  10. (转)9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路

    原文:http://www.cnblogs.com/figure9/archive/2013/01/09/2853649.html 1,简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也 ...