会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
  · 杀毒专区
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
技术文档 > Delphi
创建桌面链接
发表日期:2003-04-07 00:00:00作者: 出处:  

size        : 1409

uploaded_on     : Wed Oct 7 00:00:00 1998

modified_on     : Wed Dec 8 14:03:13 1999

title        : Desktop link

org_filename    : DesktopLink.txt

author       : Mario Mueller

authoremail     : mario.mueller@online.de

description     : How to create a link on the desktop

keywords      :

tested       : not tested yet

submitted_by    : The CKB Crew

submitted_by_email : ckb@netalive.org

uploaded_by     : nobody

modified_by     : nobody

owner        : nobody

lang        : plain

file-type      : text/plain

category      : delphi-system32bit

__END_OF_HEADER__

> How can I create a link on the desktop to my program (application.exename)?

uses

 ShlObj, ActiveX, ComObj;

procedure TForm1.Button1Click(Sender: TObject);

var

 aObject  : IUnknown;

 aSLink   : IShellLink;

 aPFile   : IPersistFile;

 sDirectory : string;

 wsFileName : WideString;

 szWinDir  : array[0..29] of char;

begin

 FillChar(szWinDir, SizeOf(szWinDir), #0);

 GetWindowsDirectory(szWinDir, SizeOf(szWinDir));

 aObject := CreateComObject(CLSID_ShellLink);

 aSLInk := aObject as IShellLink;

 aPFile := aObject as IPersistFile;

 with aSLink do

 begin

  SetPath(PChar(editProgramm.Text));

  SetArguments(PCHar(editParameter.Text));

  SetWorkingDirectory(szWinDir);

 end;

 sDirectory := GetShellFolderPath(CSIDL_DESKTOPDIRECTORY);

//sDirectory := GetShellFolderPath(CSIDL_STARTMENU);

 Assert(sDirectory[Length(sDirectory)] <> '\', 'Backslash!');

 wsFileName := sDirectory + '\' + editLink.Text;

 aPFile.Save(PWChar(wsFileName), false);

end;

function TForm1.GetShellFolderPath(const aFolder : integer) : string;

var

 pIIL : PItemIDList;

 szPath : array[0..MAX_PATH] of char;

 aMalloc : IMalloc;

begin

 Result := '';

 Assert(aFolder <= CSIDL_PRINTHOOD, 'Falsche ShellFolder-Konstante');

 OleCheck(SHGetSpecialFolderLocation(0, aFolder, pIIL));

 SHGetPathFromIDList(pIIL, szPath);

 OleCheck(SHGetMalloc(aMalloc));

 aMalloc.Free(pIIL);

 Result := szPath;

end;

返回顶部】 【打印本页】 【关闭窗口

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2024 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00161