如何读取快捷方式的信息和生成一个快捷方式?
2011-11-28 17:13
369 查看
unit untLnkInfo; interface uses Windows, ActiveX, ComObj, ShlObj; type TLINK_FILE_INFO = record Filename: array [0 .. MAX_PATH] of Char; { 目标文件名 } WorkDirectory: array [0 .. MAX_PATH] of Char; { 工作目录或者起始目录 } IconLocation: array [0 .. MAX_PATH] of Char; { 图标文件名 } IconIndex: Integer; { 图标索引 } Arguments: array [0 .. MAX_PATH] of Char; { 程序运行的参数 } Description: array [0 .. 255] of Char; { 快捷方式的描述 } ItemIDList: PItemIDList; { 只供读取使用 } RelativePath: array [0 .. 255] of Char; { 相对目录,只能设置 } ShowState: Integer; { 运行时的窗口状态 } HotKey: Word; { 快捷键 } end; { 读取快捷方式信息 } procedure GetLinkFileInfo(LnkFileName: String; var LnkInfo: TLINK_FILE_INFO); implementation { 读取快捷方式信息 } procedure GetLinkFileInfo(LnkFileName: String; var LnkInfo: TLINK_FILE_INFO); var LnkObj : IUnknown; ShellPFile : IPersistFile; ShellLink : IShellLink; WideFileName: WideString; pfd : WIN32_FIND_DATA; begin FillChar(LnkInfo, SizeOf(LnkInfo), #0); LnkObj := CreateComObject(CLSID_ShellLink); ShellPFile := LnkObj as IPersistFile; ShellLink := LnkObj as IShellLink; WideFileName := LnkFileName; ShellPFile.Load(PWideChar(WideFileName), 0); ShellLink.GetPath(LnkInfo.Filename, MAX_PATH, pfd, SLGP_UNCPRIORITY); { 获取快捷方式文件路径 } ShellLink.GetWorkingDirectory(LnkInfo.WorkDirectory, MAX_PATH); { 获取快捷方式工作目录 } ShellLink.GetIconLocation(LnkInfo.IconLocation, MAX_PATH, LnkInfo.IconIndex); { 获取快捷方式图标文件,和图标索引 } ShellLink.GetArguments(LnkInfo.Arguments, MAX_PATH); { 获取快捷方式运行参数 } ShellLink.GetDescription(LnkInfo.Arguments, MAX_PATH); { 获取快捷方式描述 } ShellLink.GetShowCmd(LnkInfo.ShowState); { 获取快捷方式运行方式,1:常规窗体;2:最小化;3:最大化 } ShellLink.GetHotkey(LnkInfo.HotKey); { 获取快捷方式快捷键 } ShellLink := nil; ShellPFile := nil; end; { 注: 发现没有,获取都是用 ShellLink.Get..., 所以,创建,就是ShellLink.Set...了,自己动手写写了。 这里就不罗嗦了。 } end.
相关文章推荐
- 如何为javaWeb项目的网址生成一个桌面快捷方式
- HOWTO:如何通过脚本创建一个文件夹的快捷方式
- 如何做一个应用程序的快捷方式入口
- Windows 7如何建立一个FTP的快捷方式
- 在nodejs中如何用异步的方式读取一个文件
- 如何为一个程序建立一个快捷方式
- Ubuntu下如何在桌面创建一个应用程序的“快捷方式”?
- 如何在所有用户桌面上放一个快捷方式或者文件?
- Android_如何为一个app创建桌面快捷方式
- Linux系统:Ubuntu下如何在桌面创建一个应用程序的“快捷方式”?
- php代码写一个生成桌面快捷方式
- 如何在桌面上建立一个“关机”的快捷方式
- 使用libdwraf写的一个读取GCC -g参数编译生成的调试信息的例子
- Androidstudio如何快速生成get,set,构造函数。快捷方式简介
- VB如何读取快捷方式的目标路径
- 如何制作一个网页快捷方式?不简单你杀了我。
- 如何在Ubuntu中新建一个快捷方式
- Windows 7如何建立一个FTP的快捷方式
- 在liunx中创建启动器(window下的快捷方式) && linux下,如何建立一个“关闭屏幕”的启动器 ?
- Windows 中如何创建一个指向某相对路径的快捷方式(即快捷方式的目标路径为某相对路径)