建立快捷方式,马上给高分。 本人现在用Delphi做安装程序,怎么给可执行文件(C:\Byt\Project1.exe)在Windows开始菜单以及桌面上建立快捷方式?本人是新手,各位大虾代码给具体点啊!小弟先谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用 installshield ,在打包时你就可以建立,至于 installshield 你可以看说明,很容易的 //在桌面上建立快捷方式procedure TForm1.Button1Click(Sender: TObject);vartmpObject : IUnknown;tmpSLink : IShellLink;tmpPFile : IPersistFile;PIDL : PItemIDList;StartupDirectory : array[0..MAX_PATH] of Char;StartupFilename : String;LinkFilename : WideString;beginStartupFilename := 'c:\windows\notepad.exe';tmpObject := CreateComObject(CLSID_ShellLink);//创建建立快捷方式的外壳扩展tmpSLink := tmpObject as IShellLink;//取得接口tmpPFile := tmpObject as IPersistFile;//用来储存*.lnk文件的接口tmpSLink.SetPath(pChar(StartupFilename));//设定notepad.exe所在路径tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));//设定工作目录SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);//获得桌面的ItemidlistSHGetPathFromIDList(PIDL,StartupDirectory);//获得桌面路径LinkFilename := StartupDirectory + '\MyNotepad.lnk';tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件end; to pdbird(老巢): 你都没有看清楚我的问题,我是用Delphi,不是用installshield。 to flinming(木仔):这是编译时出现的问题,怎么搞定啊? [Error] Unit2.pas(65): Undeclared identifier: 'IShellLink'[Error] Unit2.pas(66): Undeclared identifier: 'IPersistFile'[Error] Unit2.pas(67): Undeclared identifier: 'PItemIDList'[Error] Unit2.pas(73): Undeclared identifier: 'CreateComObject'[Error] Unit2.pas(73): Undeclared identifier: 'CLSID_ShellLink'[Error] Unit2.pas(74): Operator not applicable to this operand type RTTI怎么获取类中的类信息? 数据库里的数据加密了,有加密算法,绑定到dbgrid,咋显示明文? 好消息: 远程监控专题论坛成立,欢迎加入! 如何解决ACM传送的延迟问题? _________一个莫名其妙的错误提示!谢谢各位前辈指点! 如何用delphi制作出象office xp那样的和xp操作系统那样的界面! 用ODBC连接oracle,如何在使用中动态更改MAX ROWS的参数值 关于串口通讯的问题!!! 怎么处始化combobox? 请问广州与深圳有哪几个大型的人才市场? 关于flatstyle控件的--在线等待 ADOConnection如何动态连接数据库?
至于 installshield 你可以看说明,很容易的
procedure TForm1.Button1Click(Sender: TObject);
var
tmpObject : IUnknown;
tmpSLink : IShellLink;
tmpPFile : IPersistFile;
PIDL : PItemIDList;
StartupDirectory : array[0..MAX_PATH] of Char;
StartupFilename : String;
LinkFilename : WideString;
begin
StartupFilename := 'c:\windows\notepad.exe';
tmpObject := CreateComObject(CLSID_ShellLink);//创建建立快捷方式的外壳扩展
tmpSLink := tmpObject as IShellLink;//取得接口
tmpPFile := tmpObject as IPersistFile;//用来储存*.lnk文件的接口
tmpSLink.SetPath(pChar(StartupFilename));//设定notepad.exe所在路径
tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));//设定工作目录
SHGetSpecialFolderLocation(0,
CSIDL_DESKTOPDIRECTORY,
PIDL);//获得桌面的Itemidlist
SHGetPathFromIDList(PIDL,
StartupDirectory);//获得桌面路径
LinkFilename := StartupDirectory + '\MyNotepad.lnk';
tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件
end;
[Error] Unit2.pas(66): Undeclared identifier: 'IPersistFile'
[Error] Unit2.pas(67): Undeclared identifier: 'PItemIDList'
[Error] Unit2.pas(73): Undeclared identifier: 'CreateComObject'
[Error] Unit2.pas(73): Undeclared identifier: 'CLSID_ShellLink'
[Error] Unit2.pas(74): Operator not applicable to this operand type