社区
C++ Builder
帖子详情
一个程序运行以后能删除自己么?
killhack
2003-02-18 04:45:26
一个程序运行以后能删除自己么? 急用!!
...全文
53
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。 感谢"蓝点
如何让你的程序同时只能运行
一个
?
有些程序我们希望在一台机器上只有
一个
实例在运行,我在windows下也遇到过很多类似这样的程序,如QQ,它只允许同时运行
一个
。那么我们在Linux该如何实现这样的单例运行的程序呢? 思路 实现这样的程序方法很多,...
如何让exe自己
删除
自己??
我们都知道,当
一个
exe程序在启动之后,操作系统会把这个可执行文件加载到内存中去,在程序处于运行状态时,如果我们想要把这个文件
删除
,那就会出现以下情况: 那我们将不得不等到程序执行完毕之后,手动的来
删除
...
Linux:如何在后台运行
一个
程序?
我写了
一个
程序 xcutsvr,希望在后台运行,以便我退出登录时还能再服务器继续运行。 setsid 运行如下命令: $ setsid xcutsvr 之后退出登录,程序仍在运行。重新登录进去,用 pstree -p 看一下: 我觉得这是最方便...
C++ Builder
13,875
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章