Delphi 外壳扩展创建快捷方式和获取快捷方式的目标对象

2022-12-28 10:52:07 作者:admin

本文整理自网络,侵删。

 uses     Windows,ComObj,ShlObj,ActiveX;
{      函数功能:创建指定文件的快捷方式      TargetFile: 快捷方式指向的文件或目录      CreateAt:      创建的快捷方式保存路径      函数返回True表示操作成功,False表示失败}function CreateShortCut(TargetFile,CreateAt:string):Boolean;const     IID_IPersistFile:TGUID = '{0000010B-0000-0000-C000-000000000046}';var     intfLink:IShellLink;     IntfPersist:IPersistFile;begin     IntfLink:=CreateComObject(CLSID_ShellLink) as IShellLink;     Result:=(IntfLink<>nil) and SUCCEEDED(IntfLink.QueryInterface(IID_IPersistFile,IntfPersist))     and SUCCEEDED(intfLink.SetPath(PAnsiChar(TargetFile))) and     SUCCEEDED(IntfPersist.Save(PWideChar(WideString(CreateAt)),True));end;

{      函数功能:返回指定快捷方式的目标文件      LinkFile: 快捷方式文件完整路径      函数返回空字符串时表示失败,否则成功}
function GetTargetOfShorCut(LinkFile:string):string;const     IID_IPersistFile:TGUID = '{0000010B-0000-0000-C000-000000000046}';var     intfLink:IShellLink;     IntfPersist:IPersistFile;     pfd:_WIN32_FIND_DATA;  // delphi10.4 是 _WIN32_FIND_DATAW     bSuccess:Boolean;begin     Result:='';     IntfLink:=CreateComObject(CLSID_ShellLink) as IShellLink;     SetString(Result,nil,MAX_PATH);     {       Load方法的第二个参数还可以传递STGM_WRITE或STGM_READWRITE,表示对快捷方式信息的访问权限         STGM_READ:只读          STGM_WRITE:只写          STGM_READWRITE:读写       GetPath方法的第三个参数还可以传递SLGP_UNCPRIORITY或SLGP_SHORTPATH,表示返回的目标路径格式         SLGP_UNCPRIORIT:UNC网络路径         SLGP_SHORTPATH :DOS 8.3格式路径         SLGP_RAWPATH      : 长路径     }     bSuccess:=(IntfLink<>nil) and SUCCEEDED(IntfLink.QueryInterface(IID_IPersistFile,IntfPersist))      and SUCCEEDED(IntfPersist.Load(PWideChar(WideString(LinkFile)),STGM_READ)) and      SUCCEEDED(intfLink.GetPath(PAnsiChar(Result),MAX_PATH,pfd,SLGP_RAWPATH));     if not bSuccess then Result:='';end;
 
除SetPath和GetPath方法外,IShellLink接口的其它方法可以设置或读取快捷方式的其它信息:GetArguments:获得参数信息 GetDescription:获得描述信息GetHotkey:获得快捷键GetIconLocation:获得图标  GetIDList:获得快捷方式的目标对象的item identifier list (Windows外壳中的每个对象如文件,目录和打印机等都有唯一的item identifiler list)GetPath: 获得快捷方式的目标文件或目录的全路径GetShowCmd:获得快捷方式的运行方式,比如常规窗口,最大化GetWorkingDirectory:获得工作目录 Resolve:按照一定的搜索规则试图获得目标对象,即使目标对象已经被删除或移动,重命名下面是对应信息的设置方法SetArguments SetDescription SetHotkeySetIconLocationSetIDListSetPathSetRelativePatSetShowCmdSetWorkingDirectory  
转载于:https://www.cnblogs.com/blogpro/p/11453890.html

相关阅读 >>

Delphi中三种方法获取windows任务栏的高度

Delphi 动态调用chm文件

Delphi like 通配符的使用

Delphi 的 webservice 的 cookie 操作

Delphi 通过控件句柄获取控件实例

Delphi jpg文件合并器代码

Delphi 模糊查询和字段查询

Delphi 弹出输入框的inputquery, inputquery 函数用法

Delphi 侧边栏隐藏窗体

Delphi中string与pansichar转换

更多相关阅读请进入《Delphi》频道 >>



在线咨询 拨打电话