CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  非技术区

如何在桌面添加快捷方式

楼主OLDBLACKP(OLDBLACKP)2004-05-03 21:49:04 在 Delphi / 非技术区 提问

如何在桌面添加快捷方式 问题点数:100、回复次数:3Top

1 楼cym830313(黑猪小C)回复于 2004-05-03 22:06:18 得分 70

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;  
  tmpSLink.SetPath(pChar(StartupFilename));  
  tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));  
  SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);  
  SHGetPathFromIDList(PIDL,StartupDirectory);  
  LinkFilename   :=   StartupDirectory   +   ’\MyNotepad.lnk’;  
  tmpPFile.Save(pWChar(LinkFilename),FALSE);  
  end;  
   
  Top

2 楼ekin(风语者)回复于 2004-05-03 22:07:27 得分 0

打包的时候可以选择!Top

3 楼miky(miky)回复于 2004-05-03 22:08:21 得分 30

创建快捷方式;获取系统文件或系统目录          
      (*//    
  标题:创建快捷方式;获取系统文件或系统目录  
   
  说明:参考Kingron资料中“如何取得某些特殊文件夹路径”  
   
  设计:Zswang  
   
  日期:2002-01-25  
   
  支持:wjhu111@21cn.com  
   
  //*)  
   
  ///////Begin   Source  
   
  uses  
   
  ShlObj,   ActiveX,   ComObj;  
   
  function   GetSpecialFolderDir(mFolder:   Integer):   string;  
   
  {   返回获取系统文件或系统目录   }  
   
  (*  
   
  CSIDL_BITBUCKET   *   回收站  
   
  CSIDL_CONTROLS   *   控制面板  
   
  CSIDL_DESKTOP   *   桌面  
   
  CSIDL_DESKTOPDIRECTORY   桌面目录   //如C:  
   
  CSIDL_DRIVES   *   我的电脑  
   
  CSIDL_FONTS   字体   //如C:  
   
  CSIDL_NETHOOD   网上邻居目录   //如C:  
   
  CSIDL_NETWORK   *   网上邻居  
   
  CSIDL_PERSONAL   我的文档   //如C:Documents  
   
  CSIDL_PRINTERS   *   打印机  
   
  CSIDL_PROGRAMS   程序组   //如C:Menu  
   
  CSIDL_RECENT   最近文档   //如C:  
   
  CSIDL_SENDTO   发送到   //如C:  
   
  CSIDL_STARTMENU   开始菜单   //如C:Menu  
   
  CSIDL_STARTUP   启动   //如C:\u21551启动  
   
  CSIDL_TEMPLATES   模版   //如C:  
   
  *)  
   
  var  
   
  vItemIDList:   PItemIDList;  
   
  vBuffer:   array[0..MAX_PATH]   of   Char;  
   
  begin  
   
  SHGetSpecialFolderLocation(0,   mFolder,   vItemIDList);  
   
  SHGetPathFromIDList(vItemIDList,   vBuffer);   //转换成文件系统的路径  
   
  Result   :=   vBuffer;  
   
  end;   {   GetSpecialFolderDir   }  
   
  function   CreateShellLink(mPath:   string;   mWorkingDirectory:   string;  
   
  mFileName:   WideString):   Boolean;   {   返回创建快捷方式是否成功   }  
   
  var  
   
  vShellLink:   IShellLink;  
   
  vPersistFile:   IPersistFile;  
   
  vUnKnown:   IUnKnown;  
   
  begin  
   
  Result   :=   True;  
   
  try  
   
  vUnKnown   :=   CreateComObject(CLSID_ShellLink);  
   
  vShellLink   :=   vUnKnown   as   IShellLink;  
   
  vPersistFile   :=   vUnKnown   as   IPersistFile;  
   
  vShellLink.SetPath(PChar(mPath));  
   
  vShellLink.SetWorkingDirectory(PChar(mWorkingDirectory));  
   
  vPersistFile.Save(PWChar(mFileName),   False);  
   
  except  
   
  Result   :=   False;  
   
  end;  
   
  end;   {   CreateShellLink   }  
   
  ///////End   Source  
   
  ///////Begin   Demo  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
   
  begin  
   
  CreateShellLink(ParamStr(0),   ExtractFilePath(ParamStr(0)),  
   
  GetSpecialFolderDir(CSIDL_DESKTOPDIRECTORY)   +   '   +  
   
  ChangeFileExt(ExtractFileName(ParamStr(0)),   '.lnk'));  
   
  end;  
   
  ///////End   Demo  
     
     
  Top

相关问题

  • 如何创建桌面快捷方式?
  • 如何在我的程序中实现向桌面添加快捷方式的功能?
  • 如何在Windows 桌面中的“开始-》程序”菜单中添加应用程序的快捷方式?
  • 如何用注册表或Setupfactory向程序文件夹和桌面添加快捷方式
  • 请问如何在桌面上创建快捷方式?
  • 如何用VB创建快捷方式到桌面?
  • 如何在桌面上创建一个快捷方式?
  • 如何在桌面上创建快捷方式?
  • 如何去掉桌面上快捷方式的小箭头?
  • 求救:如何把文件在桌面创建快捷方式

关键词

  • 系统
  • 快捷方式
  • tmpslink
  • linkfilename
  • startupdirectory
  • startupfilename
  • tmppfile
  • tmpobject
  • pidl

得分解答快速导航

  • 帖主:OLDBLACKP
  • cym830313
  • miky

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo