`
huobengle
  • 浏览: 861622 次
文章分类
社区版块
存档分类
最新评论

获得快捷方式指向的路径

 
阅读更多
using System.Runtime.InteropServices;
[Flags()]
public enum SLR_FLAGS
{
SLR_NO_UI = 0x1,
SLR_ANY_MATCH = 0x2,
SLR_UPDATE = 0x4,
SLR_NOUPDATE = 0x8,
SLR_NOSEARCH = 0x10,
SLR_NOTRACK = 0x20,
SLR_NOLINKINFO = 0x40,
SLR_INVOKE_MSI = 0x80
}
[Flags()]
public enum SLGP_FLAGS
{
SLGP_SHORTPATH = 0x1,
SLGP_UNCPRIORITY = 0x2,
SLGP_RAWPATH = 0x4
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
// Unicode version
public struct WIN32_FIND_DATA
{
public int dwFileAttributes;
public FILETIME ftCreationTime;
public FILETIME ftLastAccessTime;
public FILETIME ftLastWriteTime;
public int nFileSizeHigh;
public int nFileSizeLow;
public int dwReserved0;
public int dwReserved1;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAX_PATH)]
public string cFileName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)]
public string cAlternateFileName;
private const int MAX_PATH = 260;
}
[
ComImport(),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
Guid("000214F9-0000-0000-C000-000000000046")
]
// Unicode version
public interface IShellLink
{
void GetPath(
[Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszFile,
int cchMaxPath,
out WIN32_FIND_DATA pfd,
SLGP_FLAGS fFlags);
void GetIDList(
out IntPtr ppidl);
void SetIDList(
IntPtr pidl);
void GetDescription(
[Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszName,
int cchMaxName);
void SetDescription(
[MarshalAs(UnmanagedType.LPWStr)] string pszName);
void GetWorkingDirectory(
[Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszDir,
int cchMaxPath);
void SetWorkingDirectory(
[MarshalAs(UnmanagedType.LPWStr)] string pszDir);
void GetArguments(
[Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszArgs,
int cchMaxPath);
void SetArguments(
[MarshalAs(UnmanagedType.LPWStr)] string pszArgs);
void GetHotkey(
out short pwHotkey);
void SetHotkey(
short wHotkey);
void GetShowCmd(
out int piShowCmd);
void SetShowCmd(
int iShowCmd);
void GetIconLocation(
[Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszIconPath,
int cchIconPath,
out int piIcon);
void SetIconLocation(
[MarshalAs(UnmanagedType.LPWStr)] string pszIconPath,
int iIcon);
void SetRelativePath(
[MarshalAs(UnmanagedType.LPWStr)] string pszPathRel,
int dwReserved);
void Resolve(
IntPtr hwnd,
SLR_FLAGS fFlags);
void SetPath(
[MarshalAs(UnmanagedType.LPWStr)] string pszFile);
}
[
ComImport(),
Guid("00021401-0000-0000-C000-000000000046")
]
public class ShellLink
{
}
private void Form1_Load(object sender, EventArgs e)
{
IShellLink vShellLink = (IShellLink)new ShellLink();
UCOMIPersistFile vPersistFile = vShellLink as UCOMIPersistFile;
vPersistFile.Load(@"c:/temp/temp.lnk", 0);
StringBuilder vStringBuilder = new StringBuilder(260);
WIN32_FIND_DATA vWIN32_FIND_DATA;
vShellLink.GetPath(vStringBuilder, vStringBuilder.Capacity,
out vWIN32_FIND_DATA, SLGP_FLAGS.SLGP_RAWPATH);
Text = vStringBuilder.ToString();
}
分享到:
评论

相关推荐

    vb.net读取快捷方式

    在textbox1中输入快捷方式lnk文件路径,点击按钮,textbox2中将显示该快捷方式指向的文件路径

    快捷方式图标去箭头

    3.修改注册表,把快捷方式的箭头图标文件指向自制的特殊图标文件。 4.结束explorer进程。 5.清除图标缓存文件(需要先改属性)。 6.重新启动explorer进程。 ----------------------------------------------------...

    Shell外壳编程,执行桌面图标右键菜单

    资源介绍:。1、调用SHGetDesktopFolder函数获得桌面...4、调用IID_IShellLink接口获取快捷方式指向文件路径。5、调用FolderItem获取桌面图标右键菜单列表。资源作者:。资源界面:。资源下载:。Tags:Shell外壳编程。

    易语言-Shell外壳编程,执行桌面图标右键菜单

    1、调用SHGetDesktopFolder函数获得桌面文件夹的IShellFolder接口 2、调用所获得的IShellFolder接口...4、调用IID_IShellLink接口获取快捷方式指向文件路径。 5、调用FolderItem获取桌面图标右键菜单列表。 三叶资源网

    易语言 茶凉专用模块

    参数 lnk名称, 文本型, , 快捷方式保存全路径文件名 .参数 目标, 文本型, , 指向的文件全路径文件名 .参数 参数文本, 文本型, 可空, 执行文件的参数 .参数 图标文件, 文本型, 可空, 图标文件的路径 可空:为空时用...

    计算机视频作业.docx

    一个快捷方式可指向多个目标对象 B.一个对象可有多个快捷方式 C.只有文件可以建立快捷方式 D.只有文件夹可以建立快捷方式 3、在按下____________键的情况下删除文件,文件被物理删除。 A.Alt B.

    计算机视频作业(1).docx

    一个快捷方式可指向多个目标对象 B.一个对象可有多个快捷方式 C.只有文件可以建立快捷方式 D.只有文件夹可以建立快捷方式 3、在按下____________键的情况下删除文件,文件被物理删除。 A.Alt B.Shift C.Ctr

    精华游戏算法整理(经典)

    当我们对已经存在于开启列表中的4个临近格重复这一过程的时候,我们发现没有一条路径可以通过使用当前格子得到改善,所以我们不做任何改变。既然我们已经检查过了所有邻近格,那么就可以移动到下一格了。 于 是我们...

    xheditor-1.1.14

    参数:字符串的URL地址,默认为空,指向编辑器路径下的默认表情 备注:1.1.0新添加 emotMark:是否在表情img标签上标注emot属性 参数:true(标注),false(不标注),默认为false 说明:若使用了ubb插件,请设置此属性为...

    用MATLAB生成达到出版质量的图形-export_fig.zip

    这个模式平时是隐藏的,只能在MATLAB启动时通过附加参数的形式开启,即可以将MATLAB的快捷方式中的指向目标由 "...\...\MATLAB\R2013a\bin\MATLAB.exe" 改为 "...\...\MATLAB\R2013a\bin\MATLAB.exe" -...

    Excel VBA实用技巧大全 附书源码

    04014引用单元格的快捷方式 04015通过Cells属性引用某个单元格 04016通过Cells属性引用工作表的全部单元格 04017通过Cells属性引用连续的单元格区域(之一) 04018通过Cells属性引用连续的单元格区域(之二) 04019...

    MAPGIS地质制图工具

    第七步:选择附加任务:创建桌面快捷方式和快捷启动栏快捷方式,以及Section关联MapGis文件等。勾选所需选项,点击“下一步”,开始准备安装; 第八步:点击“安装”。直至最后,不想在安装完成后运行Section程序请去...

    入门学习Linux常用必会60个命令实例详解doc/txt

    这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台...

    DBX260中文说明书

    按下数据轮触发当前被选效果模块任何页上可得到的参数。 2.2 FX钮数组的概况 在接下来的部分里将介绍260 DriveRack FX 钮精确导航功能的具体内容。每一个图指示的是每一个FX 钮的功能,及其在每个操作菜单中指导...

    WinHex V15.1 和 V16.7 汉化版

    得到 ZDNetSoftwareLibrary 五星级最高评价,拥有强大的系统效用。 功能概述 具体来说,WinHex 是一款以通用的 16 进制编辑器为核心,专门用来对付计算机取证、数据恢复、低级数据处理、以及 IT 安全性、各种日常...

    C#微软培训资料

    17.1 .Net 框架结构提供的 I/O 方式 .215 17.2 文件存储管理 .217 17.3 读 写 文 件 .222 17.4 异步文件操作 .227 17.5 小 结 .234 第十八章 高 级 话 题 .235 18.1 注册表编程 .235 18.2 在 C #代码...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    这个程序里我们实现了两类窗口打开的方式,一个是自身消失而 后打开另一个窗口,一个是打开另一个窗口而自身不消失。可以看到他们实现的 方法是不同的。 三、Qt Creator 登录对话框(原创) 实现功能: 在弹出对话框...

    易语言程序免安装版下载

    修改应用接口支持库,增强“取快捷方式目标”命令功能,可以获取目标、参数、启始位置、图标、运行方式、快捷键、备注等信息。 9. 修改扩展界面支持库三,解决高级选择夹会导致所在窗口的收不到“首次激活”事件的...

    C#浏览器编程,学习使用

    //桌面快捷方式ID public int ID_IE_FILE_NEWMAIL = 279; //新建邮件ID public uint WM_COMMAND = 0x0111; //***********************************************// // // // 常用变量声明 // // // //****...

Global site tag (gtag.js) - Google Analytics