我正在尝试创建一个包含长参数字符串(> MAX_PATH)的快捷方式(在桌面上)。
MSDN 文档明确指出,对于 Unicode 字符串,该字符串可以比 MAX_PATH 长。
生成的快捷方式恰好在 MAX_PATH 字符(即Path
+ the Arguments
)之后被剪切。
我的实现有问题还是这是 Windows 限制?
procedure CreateShortcut(APath: WideString;
AWorkingDirectory: WideString; AArguments: WideString; ADescription: WideString;
ALinkFileName: WideString);
var
IObject : IUnknown;
ISLink : IShellLinkW;
IPFile : IPersistFile;
begin
IObject := CreateComObject(CLSID_ShellLink);
ISLink := IObject as IShellLinkW;
ISLink.SetPath( PWideChar(APath));
ISLink.SetWorkingDirectory(PWideChar(AWorkingDirectory));
ISLink.SetArguments( PWideChar(AArguments));
ISLink.SetDescription( PWideChar(ADescription));
IPFile := IObject as IPersistFile;
IPFile.Save(PWideChar(ALinkFileName), False);
end;
PS:操作系统是 Windows XP(及以上)。