外壳扩展创建快捷方式和获取快捷方式的目标对象
来源:互联网 发布:淘宝pid获取 编辑:程序博客网 时间:2024/05/01 02:31
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;
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;
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;
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
SetHotkey
SetIconLocation
SetIDList
SetPath
SetRelativePat
SetShowCmd
SetWorkingDirectory
- 外壳扩展创建快捷方式和获取快捷方式的目标对象
- 获取快捷方式的目标文件,并删除无效快捷方式和目标文件不在系统盘的快捷方式
- 获取快捷方式的目标和参数
- 获取快捷方式的目标和参数
- VC获取快捷方式的目标和参数
- 通过桌面快捷方式获取的目标路径
- VB.NET创建快捷方式和读取快捷方式的类
- VB.NET创建快捷方式和读取快捷方式的类
- windows shell 创建快捷方式和读取快捷方式的代码
- 创建和操作快捷方式
- 创建和卸载快捷方式
- 解析和创建快捷方式
- 创建普通快捷方式和Internet快捷方式
- C#如何获取快捷方式指向的目标文件
- C#如何获取快捷方式指向的目标文件
- 创建程序菜单和快捷方式的代码
- 创建程序菜单和快捷方式的代码
- Windows Mobile 快捷方式的读取和创建
- SOLOT的开发日记
- Delphi代码获取网卡物理地址
- C#Word转Html的类
- flash页面出现雪花
- 设计模式(2): 什么是设计模式
- 外壳扩展创建快捷方式和获取快捷方式的目标对象
- 明天有SUN的讲座
- 页面出现星星
- 黑客帝国动画效果
- DotFix NiceProtect v 2.8
- u-boot for vdsp:“裸奔”助手
- 鼠标移动代码(使用光标健移动)
- 时间代码1
- OpenedFilesView v1.10