我在网上找到了 在桌面建立 应用程序A 的快捷方式的代码,但现在还要给 A传递一个string参数。
A有一个主form,根据得到的参数显示不同的页面。可能标题的表述不太准确,就是 想建立快捷方式的时候把参数传进去,然后双击快捷方式,启动A,同时A得到参数。这该怎样实现,或者还有其它变通的方法。
请各位指点
A有一个主form,根据得到的参数显示不同的页面。可能标题的表述不太准确,就是 想建立快捷方式的时候把参数传进去,然后双击快捷方式,启动A,同时A得到参数。这该怎样实现,或者还有其它变通的方法。
请各位指点
你把快捷方式指向一个.Bat文件
var
tmpObject : IUnknown;
tmpSLink : IShellLink;
tmpPFile : IPersistFile;
PIDL : PItemIDList;
StartupDirectory : array[0..MAX_PATH] of Char;
StartupFilename : String;
LinkFilename : WideString;
begin
StartupFilename :='D:\A.exe';
tmpObject := CreateComObject(CLSID_ShellLink); //创建建立快捷方式的外壳扩展
tmpSLink := tmpObject as IShellLink; //取得接口
tmpPFile := tmpObject as IPersistFile; //用来储存*.lnk文件的接口
tmpSLink.SetPath(pChar(StartupFilename));//设定.exe所在路径
tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));//设定工作目录
SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);//获得桌面的Itemidlist
SHGetPathFromIDList(PIDL,StartupDirectory);//获得桌面路径
LinkFilename := StartupDirectory + 'zq.lnk';
tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件
end;
比如快捷方式要指向d:\A.exe,还要传递一个参数给A。