//删除自己的代码
procedure DeleteSelf;
var
hModule: THandle;
buff: array[0..255] of Char;
hKernel32: THandle;
pExitProcess, pDeleteFileA, pUnmapViewOfFile: Pointer;
begin
hModule := GetModuleHandle(nil);
GetModuleFileName(hModule, buff, sizeof(buff));
CloseHandle(THandle(4)); //?
hKernel32 := GetModuleHandle('KERNEL32');
pExitProcess := GetProcAddress(hKernel32, 'ExitProcess');
pDeleteFileA := GetProcAddress(hKernel32, 'DeleteFileA');
pUnmapViewOfFile := GetProcAddress(hKernel32, 'UnmapViewOfFile'); //?
//以下???
asm
LEA EAX, buff
PUSH 0
PUSH 0
PUSH EAX
PUSH pExitProcess
PUSH hModule
PUSH pDeleteFileA
PUSH pUnmapViewOfFile
RET
end;end;
此段代码是我从这里拷贝的,使用以后发现只能在NT系统下面起作用,98下面无效,为什么呢?
procedure DeleteSelf;
var
hModule: THandle;
buff: array[0..255] of Char;
hKernel32: THandle;
pExitProcess, pDeleteFileA, pUnmapViewOfFile: Pointer;
begin
hModule := GetModuleHandle(nil);
GetModuleFileName(hModule, buff, sizeof(buff));
CloseHandle(THandle(4)); //?
hKernel32 := GetModuleHandle('KERNEL32');
pExitProcess := GetProcAddress(hKernel32, 'ExitProcess');
pDeleteFileA := GetProcAddress(hKernel32, 'DeleteFileA');
pUnmapViewOfFile := GetProcAddress(hKernel32, 'UnmapViewOfFile'); //?
//以下???
asm
LEA EAX, buff
PUSH 0
PUSH 0
PUSH EAX
PUSH pExitProcess
PUSH hModule
PUSH pDeleteFileA
PUSH pUnmapViewOfFile
RET
end;end;
此段代码是我从这里拷贝的,使用以后发现只能在NT系统下面起作用,98下面无效,为什么呢?
解决方案 »
- 在或曾经上海工作的朋友进来一下,有几个生活方面的问题请教
- 怎样在一个按钮单击事件中使MEDIAPLAY7.2全屏播放?
- 报表的问题
- 那位知道CODESITE是怎么用的,马上给500分他
- 关于ToolBar, CoolBar的代码交换
- 怎么样让delphi的代码编辑器不要区别输入字符的大小写呢?在线等待!
- 在win2000做出来的东西,到了win98下各个组件的大小都变了,怪哉!?
- 用回车输入跳到下一个控件
- datetimepicker怎么选择 小时 分 秒
- 寻求高手??
- ▁▂▃▄▅▆▇█ 寻找各种图像文件格式资料 █▇▆▅▄▃▂▁(代码可以不要,资料最好是中文的(本来各种文件格式就够晕了))分不是
- 如何用query和table控件分别动态的连接foxbase数据库啊!???????
內容是:
del 你程序的名稱(絕對路徑+名稱)
del %0
然後執行此批處理文件就可了
你試試看