C/C++教程

C++通过批处理方式实现文件自毁

本文主要是介绍C++通过批处理方式实现文件自毁,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// 自毁程序.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <memory>
#include "Windows.h"
#include <string>

char *GetExeName()
{
	//获取应用程序目录
	char szapipath[MAX_PATH];
	memset(szapipath, 0, MAX_PATH);
	GetModuleFileNameA(NULL, szapipath, MAX_PATH);

	//获取应用程序名称
	char *szExe = (char *)calloc(MAX_PATH, sizeof(char));
	char *pbuf = NULL;
	char* szLine = strtok_s(szapipath, "\\", &pbuf);
	while (NULL != szLine)
	{
		strcpy(szExe, szLine);
		szLine = strtok_s(NULL, "\\", &pbuf);
	}

	//删除.exe
	strncpy(szapipath, szExe, strlen(szExe) - 4);
	return szExe;
}

int main()
{
	//获取应用程序目录
	char szapipath[MAX_PATH];//(D:\Documents\Downloads\TEST.exe)
	memset(szapipath, 0, MAX_PATH);
	GetModuleFileNameA(NULL, szapipath, MAX_PATH);

	FILE *pFile = fopen("自毁.bat", "w");
	if (!pFile)
		return -1;
	std::string szKill = "taskkill /f /im \"";
	auto szExe = GetExeName();
	szKill.append(szExe);
	szKill.append("\"\n");
	szKill.append("del /f \"");
	szKill.append(szapipath);
	szKill.append("\"\n");
	szKill.append("del /f 自毁.bat\n");
	fputs( szKill.data(), pFile);
	free(szExe);
	fclose(pFile);
	system("自毁.bat");
    return 0;
}

这篇关于C++通过批处理方式实现文件自毁的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!