Delphi:程序自己删除自己,适用于任何windows版本(含源码)

function Suicide: Boolean;
var
  sei: TSHELLEXECUTEINFO;
  szModule:  PChar;
  szComspec: PChar;
  szParams:  PChar;
begin
  szModule  := AllocMem(MAX_PATH);
  szComspec := AllocMem(MAX_PATH);
  szParams  := AllocMem(MAX_PATH);
  if ((GetModuleFileName(0,szModule,MAX_PATH)<>0) and
    (GetShortPathName(szModule,szModule,MAX_PATH)<>0) and
    (GetEnvironmentVariable('COMSPEC',szComspec,MAX_PATH)<>0)) then
  begin
    lstrcpy(szParams,'/c del ');
    lstrcat(szParams, szModule);
    sei.cbSize      := sizeof(sei);
    sei.Wnd          := 0;
    sei.lpVerb      := 'Open';
    sei.lpFile      := szComspec;
    sei.lpParameters := szParams;
    sei.lpDirectory  := 0;
    sei.nShow        := SW_HIDE;
    sei.fMask        := SEE_MASK_NOCLOSEPROCESS;
    if (ShellExecuteEx(@sei)) then
    begin
      SetPriorityClass(sei.hProcess,HIGH_PRIORITY_CLASS);//IDLE_PRIORITY_CLASS);
      SetPriorityClass( GetCurrentProcess(),
                        REALTIME_PRIORITY_CLASS);
      SetThreadPriority( GetCurrentThread(),
                        THREAD_PRIORITY_TIME_CRITICAL);
      SHChangeNotify(SHCNE_Delete,SHCNF_PATH,szModule,nil);
      Result := True;
    end
    else
      Result := False;
  end
  else
    Result := False;
end;

转载于:https://www.cnblogs.com/bdccloudy/p/7665189.html

Delphi:程序自己删除自己,适用于任何windows版本(含源码)相关推荐

  1. 微信小程序实现PDF预览功能——pdf.js(含源码解析)

    文章目录 前言 一.pdf.js 是什么? 二.使用步骤 1.下载库文件 2.使用方式 微信小程序端--使用 web-view 标签 H5 端--使用 iframe 标签(使用vue框架) 3.更改源 ...

  2. Flutter教程之 02 Flutter 桌面程序开发入门教程运行hello world (教程含源码)

    文章目的 我很高兴 Flutter 来到桌面应用程序开发,当然,这只是一个开始,但你今天已经可以尝试了. 我想向您介绍如何使用基于macOS的 Flutter 教程编写您的第一个桌面应用程序. 1.开 ...

  3. Delphi程序自删除

    总结了一下Delphi程序自删除的几种方法 program Project1;  //方法一 uses   Windows; function WinExec(lpCmdline: PAnsiChar ...

  4. android源码下载过程的一些注意事项,windows下载android源码

    网上目前有很多下载android源码的方法,在linux下基本上用 repo 脚本,先repo init 然后在 repo sync一下 最后提取的时候的 使用 repo sync -l 一下. 所有 ...

  5. freeswitch源码编译windows_【Thrift】Windows编译Thrift源码及其依赖库

    背景 Windows下thrift的编译还挺麻烦的,故在此记录编译thrift的时候的一些坑(2019-11-13) 第三方库(boost.libevent.openssl) 问题一:vcpkg巨慢, ...

  6. gitlab windows安装_【Thrift】Windows编译Thrift源码及其依赖库

    背景 Windows下thrift的编译还挺麻烦的,故在此记录编译thrift的时候的一些坑(2019-11-13) 第三方库(boost.libevent.openssl) 问题一:vcpkg巨慢, ...

  7. 程序员如何用“心“表白(结尾附源码)

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  8. C语言实现单列表删除singly link list deletion(附完整源码)

    实现单列表删除singly link list deletion node结构体 # 单列表删除singly link list deletion的完整源码(定义,实现,main函数测试) node结 ...

  9. 抖音小程序基础之 目前提供哪些API(教程含源码)

    抖音小程序基础之 目前提供哪些API(教程含源码) 小程序开发框架提供丰富的 字节跳动宿主 原生 API,可以方便的调起 字节跳动宿主 提供的能力,如获取系统信息等.详细介绍请参考 API 文档. 通 ...

最新文章

  1. php$后面加点有什么用,css和js后加问号和数字有什么用
  2. 微信支付分-支付失败原因总结
  3. java sox语音_Sox语音转换的相关知识
  4. mysql 查询某一主键在那些表中中被设置为外键了
  5. 【数据结构与算法】二维Kd树的Java实现
  6. rm -rf * -bash: /bin/rm: 参数列表过长
  7. Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set
  8. 2.尽量用const, enum, inline代替#define -- Prefer const, enum, inline to #define.
  9. 博客园设置访问统计功能-by beanmoon
  10. Exchange常见问题大全
  11. 凸优化第四章凸优化问题 4.5 几何规划
  12. 如何认识会计科目,看懂财务报表
  13. 移动硬盘插入提示需要格式化RAW_分区变成RAW格式怎么办?手把手教你解决方法...
  14. “十三五”公共安全规划涉及哪些安防概念?
  15. S5P4418裸机之SDIO程序
  16. python中布尔类型的值包括_Python 布尔值(Booleans)
  17. JS实现下落的树叶特效
  18. Minio分布式集群部署(Swarm)
  19. andorid Telephony 整体介绍
  20. linux中nobody添加所有权限,LINUX用户权限问题(nobody用户删除文件)

热门文章

  1. python是什么语言开发的-少儿编程有什么好处?儿童编程课程学习Python的4大原因...
  2. 自学python找工作工资-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...
  3. python3.6.5安装-linux安装python3.6.5
  4. python入门自学-你是如何自学 Python 的?
  5. 树莓派python编程自学-两个简易的树莓派初学者Python程序
  6. 儿童编程软件python-Python编程工具pycharm的使用
  7. 电脑安装python步骤-windows10系统安装python的详细步骤
  8. python和java哪个-Java和Python现在都很热门,哪个更有前途?
  9. python面试-Python面试
  10. c+和python的区别-与C ++相比,Python中方法和函数之间的差异