首页 > 编程语言 >c++ 删除自己

c++ 删除自己

时间:2023-09-25 16:33:57浏览次数:39  
标签:pi 删除 MAX 自己 c++ szModuleName szCmd PATH NULL

 How to write a program in C++ such that it will delete itself after execution? - Stack Overflow

 

#include <strsafe.h>
#include <Windows.h>
#define SELF_REMOVE_STRING  TEXT("cmd.exe /C ping 1.1.1.1 -n 1 -w 3000 > Nul & Del /f /q \"%s\"")

void DelMe()
{
    TCHAR szModuleName[MAX_PATH];
    TCHAR szCmd[2 * MAX_PATH];
    STARTUPINFO si = { 0 };
    PROCESS_INFORMATION pi = { 0 };

    GetModuleFileName(NULL, szModuleName, MAX_PATH);

    StringCbPrintf(szCmd, 2 * MAX_PATH, SELF_REMOVE_STRING, szModuleName);

    CreateProcess(NULL, szCmd, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);

    CloseHandle(pi.hThread);
    CloseHandle(pi.hProcess);
}

 

标签:pi,删除,MAX,自己,c++,szModuleName,szCmd,PATH,NULL
From: https://www.cnblogs.com/laremehpe/p/17728228.html

相关文章

  • Django celery 定时任务与周期任务的创建-暂停-开始-删除
    发开阶段遇到了需要定时任务以及周期任务才能进行的事情,这里进行记录一下,防止下次我再写的时候写不明白。首先在你们项目里面创建以下文件:celery:importosos.environ.setdefault("DJANGO_SETTINGS_MODULE","settings")fromceleryimportCeleryfromquality_control.ce......
  • C++学习后感
    1. C++中的new和delete分别用来分配和释放内存,它们与C语言中malloc()、free()最大的一个不同之处在于:用。构造函数和析构函数对于类来说是不可或缺的,所以在C++中我们非常鼓励使用new和delete。析构就是清除空间,构造就是初始化。2.对于一个存在着标准输入输出的C++控制台......
  • 删除分区
    1.lsblk  列出系统上的块设备(如硬盘、固态硬盘等)以及它们的分区2. smartctl-i/dev/sdk  获取与硬盘健康状态相关的信息  (看这两个信息) 3. cli/c0show  (查看出这两条)4. cli/c0/e0/s6showall   5. cli/c0addvdr0 drives=0:6force  ......
  • kingbaseES主备集群添加/删除节点
    测试环境 IPVIPOSDB主库168.3.1.212168.3.1.214rhel7.6KingbaseESV008R006C007B0012备库1168.3.1.213168.3.1.214rhel7.6KingbaseESV008R006C007B0012备库2168.3.1.215168.3.1.214rhel7.6KingbaseESV008R006C007B0012测试记录1.检查当前集群状态是否正常repmgrclustershow2.......
  • Qt/C++音视频开发56-udp推流和拉流/组播和单播推流
    一、前言之前已经实现了rtsp/rtmp推流,rtsp/rtmp/hls/flv/ws-flv/webrtc等拉流,这种一般都需要依赖一个独立的流媒体服务程序,有没有一种更便捷的方式不需要这种依赖,然后又能实现推拉流呢,当然有的那就是udpp推流,其中udp推流还可以是组播或者单播推流,组播一般会选择224.0.0.1这个地址......
  • UE4创建C++版项目遇到的错误
    1.VisualStudio2017version15.6isrequiredtocompileonWindows.PleaseinstallupdatesthroughtheVisualStudioinstaller.说是VS201715.0.0版本太低,需要VS201715.6才可以。但是又不想更新。。所以直接注释掉这句断言代码。就不报错了该文件名字叫“WindowsPl......
  • pdf怎么删除不要的页
    1、准备一份pdf文件,选中,点击右键,出来的列表里,打开方式,选择chrome。如下图所示。2、用浏览器打开pdf文件之后,在右上角有个「打印」的图标,点击该图标。在「目标打印机」的选项,把默认的打印机,修改为「另存为PDF」。「页面」选择「自定义」。如下图所示。 在「自定义」里,输......
  • 两两交换链表中的节点、删除链表倒数第N个结点、链表相交、环形链表
    题目要求LeetCode24两两交换链表中的节点LeetCode19删除链表的倒数第N个结点LeetCode面试题02.07链表相交LeetCode142环形链表II题目思路24两两交换链表中的节点  本题采用具有虚拟头结点的链表来写,卡哥的示意图如下:  首先要交换的两个链表的前一个结点,然后修改指......
  • linux教程:删除当前目录非.zip文件及目录(find和rm两种方式)
    第一种方式要删除当前目录中除了.zip文件以外的所有文件和目录,可以使用以下命令:rm-fr!(*.zip)这个命令使用了通配符!(*.zip)来匹配除了.zip文件以外的所有文件和目录,并使用rm-fr来递归删除它们。请确保在执行此命令之前,你已经切换到了正确的目录。第二种方式使用find结合rm来删......
  • Apache IoTDB开发系统之C++原生接口
    安装相关依赖MAC安装Bison:Mac环境下预安装了Bison2.3版本,但该版本过低不能够用来编译Thrift。使用Bison2.3版本会报以下错误: invaliddirective:'%code'使用下面brew命令更新bison版本:brewinstallbisonbrewlinkbison--force添加环境变量:echo'exportPATH="/......