社区
C++ Builder
帖子详情
一个程序运行以后能删除自己么?
killhack
2003-02-18 04:45:26
一个程序运行以后能删除自己么? 急用!!
...全文
31
3
打赏
收藏
一个程序运行以后能删除自己么?
一个程序运行以后能删除自己么? 急用!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
maoke000
2003-02-18
打赏
举报
回复
试试这个函数,我写的更新程序时用的。
void DeleteSelf()
{
TProcessInformation ProcessInfo;
TStartupInfo StartUpInfo;
AnsiString sPath = ExtractFilePath(ParamStr(0));
AnsiString BatchFileName = sPath + "DelSelf.bat";
TStringList* vStringList = new TStringList;
try
{
vStringList->Add(":try");
vStringList->Add("del \"" + ParamStr(0) + "\"");
vStringList->Add("if exist \"" + ParamStr(0) + "\" goto try");
vStringList->Add("del %0");
vStringList->SaveToFile(BatchFileName);
}
__finally
{
delete vStringList;
}
memset(&StartUpInfo, 0, sizeof(TStartupInfo));
StartUpInfo.dwFlags = STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow = SW_HIDE;
char* szCmdLine = BatchFileName.c_str();
if(CreateProcess(NULL, szCmdLine, NULL, NULL,
false, IDLE_PRIORITY_CLASS, NULL, NULL, &StartUpInfo,
&ProcessInfo))
{
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
}
l_clove
2003-02-18
打赏
举报
回复
NowCan的代码
#include <windows.h>
int main()
{
char buf[MAX_PATH];
HMODULE Hm1,Hm2;
HANDLE Ex,De,Un;
Hm2=GetModuleHandle(0);
GetModuleFileName(Hm2,buf,255);
Hm1=GetModuleHandle("Kernel32");
Ex=GetProcAddress(Hm1,"ExitProcess");
De=GetProcAddress(Hm1,"DeleteFileA");
Un=GetProcAddress(Hm1,"UnmapViewOfFile");
CloseHandle(HANDLE(4));
__asm {
LEA EAX,buf
PUSH 0
PUSH 0
PUSH EAX
PUSH Ex
PUSH Hm2
PUSH De
PUSH Un
RET
}
return 0;
}
pepsi1980
2003-02-18
打赏
举报
回复
这个问题在以前解决过了,借花献佛!
int main(int argc, char *argv[])
{
HMODULE module = GetModuleHandle(0);
CHAR buf[MAX_PATH];
GetModuleFileName(module, buf, sizeof buf);
CloseHandle(HANDLE(4));
__asm {
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}
return 0;
}
让程序作为服务运行(instsrv.exe srvany.exe)
想让
一个
程序在启动系统的时候自动运行,你有什么好办法?添加到启动组?那如果别人
删除
掉就不管用了。如果你使用了Windows NT/2000/XP,就可以试试把这个程序添加为
一个
服务,这样只有拥有权限的人才可以更改服务...
Windows 2003 iis6.0 IIS
本IIS安装程序适用于Windows 2003系统,IIS版本为6.0版。...打开“添加
删除
程序”,勾选“显示更新”,在列表中找KB939373、 kB942830、KB942831这三个补丁,如果有,将其卸载,之后再启动IIS。 感谢"蓝点
一个
简单应用程序的上云过程
您可能已经认识到云平台以及将应用程序发布到云上的好处,在 Bluemix 上创建了自己的云应用程序,但是不了解云应用程序的结构,不知道怎么基于它开发自己的应用? 不知道需要什么样的开发测试环境? 应用开发好了却...
C语言中
一个
程序写完后怎么运行啊?
C语言中
一个
程序写完后怎么运行啊? 当编写bai完
一个
程序后,需要首先进行编译,然后再运行。 如下图所示,程序编写完毕后,点击工具栏中的Execute,选择compile(编译)。 如果没有错误,再选择Execute,选择run(运行...
Linux正在运行的程序可以直接覆盖吗?
Linux下可以替换运行中的程序么? 今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口...结果朋友发来
一个
执行结果:(test正在运行中) # cp te...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章