手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

快捷方式/删除项/EXE自删除DIY

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

1 2 下一页

每一个编程爱好者,都希望自己的作品能为大家接受和喜爱,但我们的作品大多是简单的一个EXE文件的拷贝,既不需安装也没有删除程序,让人觉得只是程序而不是产品,以下我以Delphi 为例和大家交流一下程序组快捷方式建立、添加删除程序组中的删除项和程序的自删除等功能。

1.以下先来介绍建立程序组快捷方式的方法:

在uses 单元中加入 shlobj,activex,comobj,在窗口中添加一个button,并在其事件中添加以下代码:






procedure TForm1.Button1Click(Sender: TObject);
var sl:ishelllink;
pf:ipersistFile;
lnkName:Widestring;
app:string;
begin
olecheck(cocreateInstance(clsid_shellLink,nil,Clsctx_inproc_server,iShellLink,sl));
pf:=sl as IPersistFile;
app:=application.exename;
OleCheck(sl.SetPath(pchar(app)));//建立有效的链接
LnkName:='C:\Windows\Start Menu\Programs\redbird.lnk'; //设置目标文件
pf.Save(PWideChar(lnkName),true); //保存文件
end;

当然以上这段代码应放在程序第一次运行时的代码段中,而且程序组或是桌面的位置最好要以注册表 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders中的对应值为准。您对注册表的操作可通过Delphi对注册表封装了的TReGIStry 来完成,此法比较简单,在此就不再赘述,如您想写出更小的程序或是您在用VB编程,那就得调用API.以下作者将以对注册表API函数的直接调用向大家介绍如何建立添加删除程序中的项目.同样,这段代码也应放在程序首次运行时执行。


program project1;
uses
Windows;

{$R *.RES}
type
TRegKeyInfo = record
NumSubKeys: Integer;
MaxSubKeyLen: Integer;
NumValues: Integer;
MaxValueLen: Integer;
MaxDataLen: Integer;
FileTime: TFileTime;
end;
var IHand:integer;
IKey:Hkey;
Regs: TRegKeyInfo;
begin
RegCreateKeyEx(HKEY_LOCAL_MACHINE, // 注册表根键
'Software\Microsoft\Windows\CurrentVersion\Uninstall\MyApp'//你的程序项
, 0, nil,REG_OPTION_NON_VOLATILE, KEY_ALL_Access, nil, IKey, @IHand);



  



上一篇: QQ聊天记录器演示程序(一)
下一篇: Delphi单元文件详解

1 2 下一页

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!