C 自删除技术---批处理方式
Posted m-anonymous
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 自删除技术---批处理方式相关的知识,希望对你有一定的参考价值。
#include<stdio.h> #include<windows.h> int main(void) { FILE *fp; TCHAR buffer[MAX_PATH]; GetModuleFileName(NULL,buffer,MAX_PATH); fp = fopen("del.bat","w"); fprintf(fp,"@echo off "); fprintf(fp,":start if not exist %s goto done ",buffer); fprintf(fp," del /f /q %s ",buffer); fprintf(fp,"goto start "); fprintf(fp,":done "); fprintf(fp," del /f /q %0 "); fclose(fp); ShellExecuteA(NULL,"open","del.bat",NULL,NULL,SW_HIDE); return 0; }
@echo off
:start if not exist del.exe goto done del /f /q del.exe goto start :done del /f /q %0 // 0% 代表自身
GetModuleFileName() 介绍:
功能:获取当前进程已加载模块的文件的完整路径,该模块必须由当前进程加载。
函数原型:DWORD WINAPI GetModuleFileName( HMODULE hModule, LPTSTR lpFilename, DWORD nSize) ;
参数:hModule 表示正在被加载模块的句柄,如果为 NULL,则将当前可执行文件的完整路径复制到 lpFilename 中
nSize 表示复制到 lpFilename 的最大字符数量。
返回值:如执行成功,返回复制到lpFileName的实际字符数量;零表示失败。
ShellExecute() 介绍:
功能:运行一个外部程序 (或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。
函数原型:HINSTANCE ShellExecuteA(
HWND hwnd, //指定父窗口句柄。
LPCSTR lpOperation, //指定动作, 譬如: open、runas、print、edit、explore、find (提示,可以打开网址)
LPCSTR lpFile, //指定要打开的文件或程序
LPCSTR lpParameters, //给要打开的程序指定参数; 如果打开的是文件这里应该是 nil
LPCSTR lpDirectory, //缺省目录
INT nShowCmd //打开选项 --- SB_HIDE 代表隐藏窗口。
);
以上是关于C 自删除技术---批处理方式的主要内容,如果未能解决你的问题,请参考以下文章