导语:结束一个进程的方法通常有:exit(), ExitProcess, TerminateProcess. 通常一个进程在正常情况下结束的话,系统会调用 ExitProcess函数结束进程,但有时候想强行杀掉一个进程的话就必须调用TerminateProcess函数了,TerminateProcess强行关掉一个进程后,并没有做内存对象资源的清理,这样有时候会导致内存泄漏,他和ExitProcess是一样的,通常系统会调用exit函数,exit函数会清理全局的对象资源,然后调用ExitPeocess结束进程。

函数定义:
BOOL TerminateProcess(
                                         HANDLE hProcess, // handle to the process,进程句柄
                                         UINT uExitCode   // exit code for the process,传递给进程的退出码
                                        );
参数说明:
        第一个参数不说了,关于第二个参数是我们要传递给结束进程的退出码,这样可以调用GetExitCodeProcess函数可以得到这个退出码。

   使用此函数必须有PROCESS_TERMINATE权限,否则会失败,下面举例说明强行结束当前进程,不过通常状况下不适用此函数结束当前进程,以免造成内存泄漏:

void main()
{DWORD dwPID = GetCurrentProcessId();HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwPID);if (NULL == hProcess)return ;BOOL bExit = TerminateProcess(hProcess, 0);if(!bExit){//GetLastError();    }//如果成功就会造成hProcess句柄没有关闭,内核对象没有释放
}

转载于:https://www.cnblogs.com/priarieNew/p/9755794.html

Windows API 25篇 TerminateProcess相关推荐

  1. Windows API 第二篇 SHGetSpecialFolderPath

    BOOL SHGetSpecialFolderPath( HWND hwndOwner,                                  LPTSTR lpszPath,       ...

  2. windows API 开发飞机订票系统 图形化界面 (二)

    首先,用到的数据结构的定义.以及全局变量和函数的声明如下: 1 // Flight.c : 定义应用程序的入口点. 2 // 3 #include "stdafx.h" 4 5 / ...

  3. 挂钩Windows API

    创建时间:2004-03-06 文章属性:原创 文章提交:SoBeIt (kinsephi_at_hotmail.com) ===========================[ 挂钩Windows ...

  4. Windows API函数速查

    http://blog.csdn.net/ghevinn/article/details/8213614 Windows API函数速查 1. API之网络函数 WNetAddConnection 创 ...

  5. 如何在go中调用windows api

    1.cgo环境搭建 初入go坑,记录一次工作中需要封装windows api 的过程.既然是go调用C++那么首先要配置cgo的环境了.要使用CGO特性,需要安装C/C++构建工具链,在macOS和L ...

  6. Windows API一日一练(一)第一个应用程序 使用应用程序句柄 使用命令行参数 MessageBox函数 RegisterClass和RegisterClassEx函数

    要跟计算机进行交互,就需要计算机显示信息给人看到,或者发出声音给人听到,然后人看到或听到相应的信息后,再输入其它信息给计算机,这样就可以让计算机进行数据处理,把结果显示给我们.现在就来编写一个最简单的 ...

  7. messagebox 全部使用_「一」Windows API 零门槛编程指南——MessageBox

    本篇作为Windows API 系列文章的第一篇,将简要的讲解一下什么是Windows API,Windows API能做些什么,并且尽可能讲解一些新出现的专有名词:本系列博文几乎没有难啃的" ...

  8. [Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel

    [Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel 楼主  发表于 2013-5-21 20:36:22 | 查看: 923| 回复: 7 SQL表格模型QSqlTable ...

  9. C# 获得窗体句柄并发送消息(利用windows API可在不同进程中获取)

    C#使用Windows API获取窗口句柄控制其他程序窗口 编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口.比如,操作飞信定时发送短信等.我之前开发过飞信耗子,用的 ...

最新文章

  1. 请问有办法加速TTS的反应时间吗
  2. 深入浅出HTTPS基本原理
  3. 电脑达人教你怎么解决Win7系统盘渐渐变小的问题
  4. 深入浅出python机器学习_如何用python画三维图? add_subplot() Axes3D() plot_surface() gca()
  5. 【Python】学习笔记总结2(Python面向对象)
  6. wxWidgets:拖放概述
  7. 如何在64位的Win10系统下安装.NET Framework 3.0
  8. AngularDart 现已全面采用 Dart 开发
  9. UVALive 7455 Linear Ecosystem (高斯消元)
  10. html登录界面设计代码_最简洁实现Github登录的JS代码示例
  11. Redis的碎片整理功能只有在使用jemalloc的时候才支持
  12. 使用swiftenv管理swift版本
  13. python中的换行符是哪个键_Python换行符问题:\r\n还是\n?
  14. stm32固件库文件
  15. 我的移动开发春季历程,大厂面试题汇总
  16. Python-常用数据结构(字典)-Dict
  17. 零代码组态搭建的水泥生产工艺流程
  18. java日志框架JUL、JCL、Slf4j、Log4j、Log4j2、Logback 一网打尽
  19. 远程办公神器-如何在家里远程办公室的电脑,利用cpolar内网穿透
  20. 每天一个Lodash源码解析

热门文章

  1. 如何获得快乐? 期望值管理/阈值自控/应对时间变快
  2. mysql时间戳转日期_MYSQL时间戳和日期相互转换 笔记整理
  3. yolo.h5文件问题的解决 - 吴恩达深度学习:目标检测之YOLO算法
  4. fastboot wairting for device fastboot模式下 电脑无法识别
  5. vimplus快捷键
  6. 秋天来了,冬天的脚步进了
  7. 在windows部署hadoopSpark和IDEA
  8. 这可能是最全的在Ubunto安装idea,maven以及进行Wordcount实例的一个博客了
  9. Vim复制粘贴简明教程
  10. 亲身实感十多年的面试官面试的题目