C语言实例|使用C程序优雅地杀掉其它程序进程

news2024/11/17 2:57:30

C语言文章更新目录

C语言学习资源汇总,史上最全面总结,没有之一
C/C++学习资源(百度云盘链接)
计算机二级资料(过级专用)
C语言学习路线(从入门到实战)
编写C语言程序的7个步骤和编程机制
C语言基础-第一个C程序
C语言基础-简单程序分析
VS2019编写简单的C程序示例
简单示例,VS2019调试C语言程序
C语言基础-基本算法
C语言基础-数据类型
C语言中的输入输出函数
C语言流程控制语句
C语言数组——一维数组
C语言数组——二维数组
C语言数组——字符数组
C语言中常用的6个字符串处理函数
精心收集了60个C语言项目源码,分享给大家
C语言核心技术——函数
C代码是怎样跑起来的?
C语言实现字符串的加密和解密
C语言——文件的基本操作
使用C语言链表创建学生信息并且将信息打印输出
图解C语言冒泡排序算法,含代码分析
实例分析C语言中strlen和sizeof的区别
开发C语言的3款神器,VS2019、VScode和IntelliJ Clion
动图图解C语言选择排序算法,含代码分析
动图图解C语言插入排序算法,含代码分析
C语言指针数组和数组指针详解
5分钟搞懂C语言中的传值和传址
C语言——动态数组的创建和使用

C语言实例专栏(持续更新中…)

需求

使用C语言编写程序,杀掉\终了指定的程序进程。
程序列表里有一个正在运行的notepad2.exe,它的进程号是22516,下面通过编写代码将进程号是22516的程序杀掉。

实例代码

//
// Created by 冲哥 on 2022/12/04.
// 微信关注【C语言中文社区】,免费领取500G学习资料
//
#include <stdio.h>
#include "windows.system.h"

int KillProcess(DWORD ProcessId);

int main() {
    int rc;
    int pid = 0;
    printf("please input pid: ");
    scanf("%d", &pid);
    rc = KillProcess(pid);
    if (rc == 0){
        printf("KillProcess success\n");
        return 0;
    } else{
        printf("KillProcess failure\n");
        return -1;
    }
}

int KillProcess(DWORD ProcessId) {
    HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
    if (hProcess == NULL)
        return -1;
    if (!TerminateProcess(hProcess, 0)) {
        printf("TerminateProcess failure!");
        return -1;
    }
    return 0;
}

运行结果


再次查看进程列表,PID为22516的程序已经被杀掉了。

程序分析
代码里使用例了TerminateProcessAPI,
这个API的作用就是终止指定的进程及其所有线程。

BOOL TerminateProcess(
  [in] HANDLE hProcess,
  [in] UINT   uExitCode
);

参数

  • [in] hProcess

要终止的进程句柄。

句柄必须具有 PROCESS_TERMINATE 访问权限。 有关详细信息,请参阅 进程安全性和访问权限。

  • [in] uExitCode

进程和线程因此调用而终止的退出代码。 使用 GetExitCodeProcess 函数检索进程的退出值。 使用 GetExitCodeThread 函数检索线程的退出值。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError

关于API的使用可以查看微软的官方文档
https://learn.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-terminateprocess?redirectedfrom=MSDN
如果您觉得本篇文章对您有帮助,请点赞,转发给更多的人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FPGA 20个例程篇:18.SD卡存放音频WAV播放(中)

第七章 实战项目提升&#xff0c;完善简历 18.SD卡存放音频WAV播放&#xff08;中&#xff09; 如图1所示是WM8731中11个寄存器功能说明概况图&#xff0c;我们需要对照手册&#xff0c;再去深入了解WM8731中的11个寄存器&#xff0c;怎么去配置这些寄存器达到预期的效果&…

了解3dmax坐标系

3dmax具有多种坐标系&#xff0c;其类别如下&#xff1b;默认的是View坐标系&#xff1b; 新建一个茶壶&#xff0c;此时默认是View坐标系&#xff1b; 切换到屏幕坐标系&#xff0c;看一下如下图&#xff1b;要保持视口区域激活&#xff1b; 根据资料&#xff0c;屏幕坐标系&a…

园区如何快速实现数据可视化分析?

对于园区运营方来说&#xff0c;如果没有专业针对性的管理方案以及管理系统辅助的话&#xff0c;实现园区可视化管理的难度非常大&#xff0c;而且操作成本会很高。但如果园区运营方选择引进快鲸智慧楼宇推出的园区数据孪生可视化管理系统的话就会简单很多。 快鲸智慧楼宇数据孪…

视频学习|Springboot在线学习系统

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java、前端、Pythone开发多年&#xff0c;做过高程&#xff0c;项目经理&#xff0c;架构师 主要内容&#xff1a;Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码 …

对文本进行情感分析(分类)snownlp模块

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 对文本进行情感分析(分类) snownlp模块 选择题 对于以下python代码表述错误的一项是? from snownlp import SnowNLP myText我爱学python&#xff01; print("【显示】text"…

艾美捷ICT FLICA天冬氨酸蛋白酶(Caspase)活性检测试剂盒说明书

Caspases在细胞凋亡和炎症中发挥重要作用。艾美捷ICT FLICA天冬氨酸蛋白酶&#xff08;Caspase&#xff09;活性检测试剂盒被研究人员用于通过培养的细胞和组织中的胱天蛋白酶活性来定量凋亡。用FAM FLICA caspase-1测定试剂盒检测caspase-1活性。该体外试验使用荧光抑制剂探针…

[附源码]计算机毕业设计JAVA音乐网站

[附源码]计算机毕业设计JAVA音乐网站 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven…

一步登顶还是步步维艰?Java 资深架构师撰下的“阿里 P7 成神之路”

很多刚接触到 Java 开发的程序员都以为 Java 资深开发工程师就已经是 Java 开发的顶了&#xff0c;或者是不清楚架构师是干什么的。 举个例子说吧&#xff1a; 房屋建造。 架构师们根据房屋造型的需求设计出适合的构造&#xff0c;然后再反复测算这个框架搭建的可行性&#…

C++文件操作

文章目录计算机文件到底是什么&#xff08;通俗易懂&#xff09;&#xff1f;C文件类&#xff08;文件流类&#xff09;及用法详解C open 打开文件&#xff08;含打开模式一览表&#xff09;使用 open 函数打开文件使用流类的构造函数打开文件文本打开方式和二进制打开方式的区…

Jetson nano 系统安装

ContentsJetson Nano在 EMMC 上安装镜像U 盘启动和 TF 卡启动U 盘启动 (复制 eMMC 上系统)TF 卡启动设置远程登录系统SDK 安装使用 SDK Manager 安装使用指令安装Linux 操作基础文件传输、系统备份风扇配置IMX219-83 Stereo CameraAI 环境搭建PIP3 安装安装机器学习领域重要的安…

MOSFET 和 IGBT 栅极驱动器电路的基本原理学习笔记(二)栅极驱动参考

栅极驱动参考 1.PWM直接驱动 2.双极Totem-Pole驱动器 3.MOSFET Totem-Pole驱动器 4.速度增强电路 5.dv/dt保护 1.PWM直接驱动 在电源应用中&#xff0c;驱动主开关晶体管栅极的最简单方法是利用 PWM 控制其直接控制栅极&#xff0c;如 图 8 所示。 直接栅极驱动最艰巨的任务…

5‘-二磷酸鸟嘌呤核苷-岩藻糖二钠盐,GDP-Fucose,15839-70-0

中文名 5-二磷酸鸟嘌呤核苷-岩藻糖二钠盐 英文名 Guanosine 5′-diphospho-β-L-fucose sodium salt 英文别名 [(2R,3S,4R,5R)-5-(2-Amino-6-oxo-1,6-dihydro-9H-purin-9-yl)-3,4-dihydroxytetrahydro-2-furanyl]methyl (3S,4R,5S,6S)-3,4,5-trihydroxy-6-methyltetrahydro-2…

Linux Podman安装DVWA靶场环境

一、DVWA靶场环境简介 1.DVWA一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用&#xff0c;旨在为安全专业人员测试自己的专业技能和工具提供合法的环境&#xff0c;帮助web开发者更好的理解web应用安全防范的过程。 ​ 2.DVWA 一共包含了十个攻击模块&#xff0c;分别是&#…

Unity + Mirror实现原创卡牌游戏局域网联机

资源下载地址 局域网联机插件 Mirror&#xff1a;Mirror | 网络 | Unity Asset Store 本地客户端测试多人游戏&#xff08;不用打包&#xff09;插件 &#xff1a; ParrelSync Mirror官方文档&#xff1a;General - Mirror (gitbook.io) Mirror使用 前置准备 导入Mirror …

UNet 网络做图像分割DRIVE数据集

目录 1. 介绍 2. 搭建 UNet 网络 3. dataset 数据加载 4. train 训练网络 5. predict 分割图像 6. show 7. 完整代码 1. 介绍 项目的目录如下所示 DRIVE 存放的是数据集predict 是待分割的图像result 里面放分割predict 的结果dataset 是处理数据的文件、model存放une…

day5_redis学习

文章目录秒杀优化阻塞队列实现消息队列Redis实现消息队列List实现消息队列PubSub实现消息队列Stream实现消息队列发布以及查看探店笔记点赞以及点赞排行榜秒杀优化 上面的过程中&#xff0c;我们进行秒杀操作的基本步骤为: 所以这时候整个过程就耗费较长的时间&#xff0c;因…

【1687. 从仓库到码头运输箱子】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 你有一辆货运卡车&#xff0c;你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。 给你一个箱子数组 boxes 和三个整数 portsCount, maxBoxes 和 m…

python大数据毕业设计选题题目大全

文章目录0 前言1 大数据相关题目2 开题指导2.1 起因2.2 如何避坑(重中之重)2.3 为什么这么说呢&#xff1f;2.4 难度把控2.5 题目名称3 最后0 前言 这是学长亲手整理的&#xff0c;大数据毕设选题系列第二篇&#xff0c;都是经过学长精心审核的题目&#xff0c;适合作为毕设&a…

CPP 核心编程6-多态

#include "iostream" using namespace std;//多态 class Animal { public:void speak(){cout << "动物在说话" << endl;} };class Cat : public Animal { public:void speak(){cout << "cat在说话" << endl;} };//地址早…

【C语言航路】第七站:结构体初阶

目录 一、结构体的声明 1.结构的基础知识 2.结构的声明 3.结构体成员的类型 4.结构体变量的定义和初始化 二、结构体成员的访问 三、结构体传参 总结 一、结构体的声明 1.结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量&#xff0c;结构的每个成员可…