//////////////////////////////////////////////
procedure DeleteSelf;
var
pExitProcess: Pointer;
pDeleteFile: Pointer;
pUnmapViewOfFile: Pointer;
hModule: THANDLE;
cBuf:array[0..MAX_PATH]of Char;
begin
hModule := GetModuleHandle('kernel32');
if hModule <> 0 then
begin
pExitProcess := GetProcAddress(hModule, 'ExitProcess');
pDeleteFile := GetProcAddress(hModule, 'DeleteFileA');
pUnmapViewOfFile := GetProcAddress(hModule, 'UnmapViewOfFile');
end else
begin
pExitProcess := nil;
pDeleteFile := nil;
pUnmapViewOfFile := nil;
end;
hModule := GetModuleHandle(nil);
GetModuleFileName(hModule, cBuf, Sizeof(cBuf));
CloseHandle(THANDLE(4));
asm
XOR EAX, EAX;
PUSH EAX;
PUSH EAX;
LEA EAX, cBuf;
PUSH EAX;
MOV EAX, pExitProcess; PUSH EAX; MOV EAX, hModule; PUSH EAX; MOV EAX, pDeleteFile;
PUSH EAX;
MOV EAX, pUnmapViewOfFile;
PUSH EAX;
RET;
end;
end;//////////////////////////////////////////////
相关推荐
删除自身代码(delphi)
the procedure of delete self
delphi 程序删除自身方法(4种方法)
多种方法,请自已测试吧 procedure DeleteMe; var BatchFile: TextFile; BatchFileName: string; ProcessInfo: TProcessInformation; StartUpInfo: TStartupInfo; begin BatchFileName := ExtractFilePath(ParamStr(0)) + ‘_deleteme.bat’; AssignFile(BatchFile, BatchFileName); Rewrit
delphi 卸载指定进程内已加载的DLL
delphi 卸载指定进程内已加载的DLL
Delphi 程序自己删除自己 适用windows
程序自己删除自己,适用于任何windows版本(含源码) function Suicide: Boolean; var sei: TSHELLEXECUTEINFO; szModule: PChar; szComspec: PChar; szParams: PChar; begin szModule := AllocMem(MAX_PATH); szComspec := AllocMem(MAX_PATH); szParams := AllocMem(MAX_PATH); if ((GetModul
还未结束就能把自身删除的程序
procedure DeleteSelf;varpExitProcess: Pointer;pDeleteFile: Pointer;pUnmapViewOfFile: Pointer;hModule: THANDLE;cBuf:array[0..MAX_PATH]of Char;beginhModule := GetModuleHandle(kernel32);if hModule begi
几种程序自杀
procedure DeleteMe;var BatchFile: TextFile; BatchFileName: string; ProcessInfo: TProcessInformation; StartUpInfo: TStartupInfo;begin BatchFileName := ExtractFilePath(ParamStr(0)) + '...
让程序运行后自我删除或恢复名称 - 回复 "实习新手" 的问题
问题来源:http://www.cnblogs.com/del/archive/2008/08/12/1266368.html#2028808 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; ...
delphi CS 文件 服务器,CS架构的小型考勤管理软件Delphi版
unit uServer;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ScktComp, StdCtrls, ExtCtrls, Buttons, ComCtrls, Grids, DB,IniFiles,ADODB, IdBaseComponent,...
DELPHI-线程的终止和退出
在Delphi中使用线程,当窗体关闭时,如果窗体中启用了线程,一般需要手动关闭,以释放资源。 常用来结束线程的代码为: PcmThrd.Terminate; PcmThrd.WaitFor; 即先触发Terminate方法,然后等待线程的结束。 这种方法要求线程不能使用FreeOnTerminate := True; ,否则在WaitFor即将结束的时
程序快捷方式/程序删除项/EXE自删除DIY
作者:火鸟 redbirdli@hotmail.com每一个编程爱好者,都希望自己的作品能为大家接受和喜爱,但我们的作品大多是简单的一个EXE文件的拷贝,既不需安装也没有删除程序,让人觉得只是程序而不是产品,以下我以Delphi 为例和大家交流一下程序组快捷方式建立、添加删除程序组中的删除项和程序的自删除等功能。1.以下先来介绍建立程序组快捷方式的方法:在uses 单元中加入 shlobj,a
Delphi自删除教程_asonsoft
Delphi自删除教程_asonsoft
还未结束就能把自身删除的程序delphi版
procedure DeleteSelf;varpExitProcess: Pointer;pDeleteFile: Pointer;pUnmapViewOfFile: Pointer;hModule: THANDLE;cBuf:array[0..MAX_PATH]of Char;beginhModule := GetModuleHandle(kernel32);if hModule begi
DELPHI 应用程序图标托盘至右下角
/用户自定义的一个数值,在uCallbackMessage参数指定的消息中使。//指定ntida的长度。if message.LParam = wm_rbuttonup then begin //用鼠标右键点击图标。if message.LParam = wm_lbuttonup then begin //用鼠标左键点击图标。//指定系统状态栏显示应用程序的图标句柄。//隐藏应用程序窗口在任务栏上的显示。//在任务栏上显示应用程序窗口。//删除已有的应用程序图标。//显示应用程序窗口。
用Delphi编制可自动升级程序
在编制了一个应用程序后的维护阶段,我们会面临给应用程序升级的工作.无疑,手工升级的工作是十分繁琐的,你可能会需要到用户的机器上去更新文件.可是,如果能编一个自动升级程序,放在网络上,让用户下载,只需执行一下就完成升级工作,不是很方便吗?其实,用Delphi可以很方便地编制出这样一个的程序.以下是我们的例子,设我们已经有一个应用程序This.exe,要对它升级,用来升级的程序为Upgrade.exe
硬核Delphi(一): 实现自我删除、自我复制、自我启动、进程检测、进程保护
前言作者不得不提醒各位网友;我这里提供的思路代码仅供学习,切不可做违法的事;做为技术无好坏之分,但我们人却有好坏之分。以下相关代码仅研究参考并保护自己的权益使用。
程序运行后自动删除
很多时候(例如你想做一些恶意的事情)你需要程序执行后自动删除。我们知道,在程序执行的过程中,我们是无法删除它的。那么怎么做呢?很简单,在它结束并释放资源之后删除它。 一个简单的办法是使用批处理文件,在程序结束的时候生成一个批处理文件,此文件的信息就是尝试删除指定的程序。 一个在DELPHI下删除自身的例子:unit Unit1;interfaceuses Wind
1007




被折叠的 条评论
为什么被折叠?



