2024年4月21日发(作者:)
Delphi 自我复制源码
这种方法的原理是程序运行时先查看自己是不是在特定目录下,如果是就继续运行,如
果不是就把自己拷贝到特定目录下,然后运行新程序,再退出旧程序.
打开Delphi,新建一个工程,在窗口的Create事件中写代码:
procedure eate(Sender: TObject);
var myname: string;
begin
myname := ExtractFilename(e); //获得文件名
if e <> GetWindir + myname then //如果文件不是在
WindowsSystem那么..
begin
copyfile(pchar(e),
False);{将自己拷贝到WindowsSystem下}
pchar(GetWindir + myname),
Winexec(pchar(GetWindir + myname), sw_hide);//运行WindowsSystem
下的新文件
ate;//退出
end;
end;
其中GetWinDir是自定义函数,起功能是找出WindowsSystem的路径.
function GetWinDir: String;
var
Buf: array[0..MAX_PATH] of char;
begin
GetSystemDirectory(Buf, MAX_PATH);
Result := Buf;
if Result[Length(Result)]<>'' then Result := Result + '';
end;
Delphi 程序自删除.
发布评论