获得快捷方式指向的路径
来源:互联网 发布:录音软件下载中文版 编辑:程序博客网 时间:2024/05/17 04:44
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();
}
- 获得快捷方式指向的路径
- 有没有办法创建一个快捷方式指向两个不同的路径?
- WIN 创建一个指向某相对路径的快捷方式
- Windows 中如何创建一个指向某相对路径的快捷方式(即快捷方式的目标路径为某相对路径)
- 打开快捷方式指向的目录
- 获取快捷方式的文件路径
- 获取快捷方式的文件路径
- 获取快捷方式的文件路径
- 获得指向关键ios目录的引用
- 获得应用的路径
- 获得项目的路径
- 获得URI的路径
- 获得文件夹的路径
- 获得应用程序的路径
- 桌面上建一个指向d:\jcode的dos快捷方式
- VB6获取快捷方式lnk文件的指向绝对路径
- C#如何获取快捷方式指向的目标文件
- C#如何获取快捷方式指向的目标文件
- javaScript 实现表格排序
- 非常好用的JAVA动态类处理源码
- LADP精彩推荐(持续更新)
- 关于一道微软面试题的解答
- 精彩推荐
- 获得快捷方式指向的路径
- malloc
- ASP.NET下MVC设计模式的实现
- 捕获提示窗体消失的事件
- sgi-stl,allocator/boost:pool
- Asp.Net Forums 代码中的web设计模式
- 一个牛人给JAVA初学者的建议
- ABAP--关于abap的subroutines的几个注意点
- 什么是HTTPS