主题:[原创]验证程序返回比函数调用费时间
使用代码
#include <windows.h>
int main()
{
WinExec("$.bat",SW_HIDE);
return 0;
}
创建一个可执行文件aa.exe
然后在当前工作目录下创建一个批处理文件$.bat,内容如下:
@echo off
pause
del /q/s aa.exe
exit
这样才 aa.exe运行的时候就可以调用 $.bat,然后回车后就能实现删除 aa.exe而达到自删除功能
但是把 $.bat中的pause去掉,成为
@echo off
del /q/s aa.exe
exit
之后,提示 aa.exe 拒绝访问,而不能删除 aa.exe
我感觉是没有pause等待,程序aa.exe还在运行,没有结束的原因(因为运行的程序受到系统的保护)可见,程序的返回还是相当的费时间的
由于WinExec函数在调用的时候,不会等待自生运行结束就马上返回
显然在开始执行 $.bat中的内容的时候,也开始执行main函数中的 return 0;了
这就更说明 程序返回比函数调用费时间
#include <windows.h>
int main()
{
WinExec("$.bat",SW_HIDE);
return 0;
}
创建一个可执行文件aa.exe
然后在当前工作目录下创建一个批处理文件$.bat,内容如下:
@echo off
pause
del /q/s aa.exe
exit
这样才 aa.exe运行的时候就可以调用 $.bat,然后回车后就能实现删除 aa.exe而达到自删除功能
但是把 $.bat中的pause去掉,成为
@echo off
del /q/s aa.exe
exit
之后,提示 aa.exe 拒绝访问,而不能删除 aa.exe
我感觉是没有pause等待,程序aa.exe还在运行,没有结束的原因(因为运行的程序受到系统的保护)可见,程序的返回还是相当的费时间的
由于WinExec函数在调用的时候,不会等待自生运行结束就马上返回
显然在开始执行 $.bat中的内容的时候,也开始执行main函数中的 return 0;了
这就更说明 程序返回比函数调用费时间