本人现在用Delphi做安装程序,怎么给可执行文件(C:\Byt\Project1.exe)在Windows开始菜单以及桌面上建立快捷方式?
本人是新手,各位大虾代码给具体点啊!小弟先谢了。

解决方案 »

  1.   

    用 installshield ,在打包时你就可以建立,
    至于 installshield 你可以看说明,很容易的
      

  2.   

    //在桌面上建立快捷方式
    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;
      

  3.   

    to pdbird(老巢): 你都没有看清楚我的问题,我是用Delphi,不是用installshield。
      

  4.   

    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