美文网首页
C语言结束进程

C语言结束进程

作者: 拼命微笑轻狂丶书生 | 来源:发表于2017-08-24 20:02 被阅读9次

最近做的一个项目中,运行结束时总会有进程残留,特地上网找了一份结束进程的代码,现在贴出来给大家参考:

BOOL KillProcessFromName(CString strProcessName)

{

        //创建进程快照(TH32CS_SNAPPROCESS表示创建所有进程的快照)

        HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

        //PROCESSENTRY32进程快照的结构体

        PROCESSENTRY32 pe;

        //实例化后使用Process32First获取第一个快照的进程前必做的初始化操作

        pe.dwSize = sizeof(PROCESSENTRY32);

        //下面的IF效果同:

        //if(hProcessSnap == INVALID_HANDLE_VALUE)  无效的句柄

        if (!Process32First(hSnapShot, &pe))

        {

                return FALSE;

        }

        //将字符串转换为小写

        strProcessName.MakeLower();

        //如果句柄有效  则一直获取下一个句柄循环下去

        while (Process32Next(hSnapShot, &pe))

        {

                //pe.szExeFile获取当前进程的可执行文件名称

                CString scTmp = pe.szExeFile;

                //将可执行文件名称所有英文字母修改为小写

                scTmp.MakeLower();

                //比较当前进程的可执行文件名称和传递进来的文件名称是否相同

                //相同的话Compare返回0

                if (!scTmp.Compare(strProcessName))

                {

                        //从快照进程中获取该进程的PID(即任务管理器中的PID)

                        DWORD dwProcessID = pe.th32ProcessID;

                        HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessID);

                        ::TerminateProcess(hProcess, 0);

                        CloseHandle(hProcess);

                        return TRUE;

                }

                scTmp.ReleaseBuffer();

        }

        strProcessName.ReleaseBuffer();

        return FALSE;

}

这个是通过进程名来结束进程的,希望对大家有帮助。

相关文章

  • C语言结束进程

    最近做的一个项目中,运行结束时总会有进程残留,特地上网找了一份结束进程的代码,现在贴出来给大家参考: BOOL K...

  • C语言-系统-进程

    并发机制 和并发相关的关键术语1.临界区:是一段代码,在这段代码中进程将访问共享资源,当另一个进程已经在这段代码中...

  • Linux 内核设计与实现(未完待续)

    Linux 源码是 C 写的,这里为了描述方便,C 语言里的 struct 就记成对象。 进程和线程 进程在源码里...

  • Linux网络程序设计练习

    进程间的通信和同步 题目1:编写C语言程序,要求创建子进程,实现父进程通过管道的方式向子进程发送消息,子进程在收到...

  • C语言的进程空间

    一、进程空间 老规矩,上图: 虚拟内存和真实内存之间的转换

  • CMD查看进程ID并查杀进程

    CMD查看进程ID并查杀进程 开始-运行,输入CMD打开命令行界面,输入命令netstat -ano 结束该进程C...

  • 操作系统第二次上机实验-进程通信

    实验题目:进程通信 实验目的 熟练使用 Linux 的 C 语言开发环境 掌握 Linux 操作系统下的并发进程间...

  • Swoole Process

    简介 基于C语言封装的进程管理模块,方便php的多进程编程 内置管道、消息队列接口,可方便实现进程间通信 自定义信号管理

  • linux进程的终止、暂停、挂起

    ctrl+c 结束进程ctrl+z 挂起进程并放入后台jobs 显示当前暂停的进程bg %N 使第N个任务在后台运...

  • 随想:人生如同进程

    人生如同操作系统里的进程。 你无法选择你的父进程,也无法设置初始值。你没有选择编写你的语言:汇编、C、C++、Py...

网友评论

      本文标题:C语言结束进程

      本文链接:https://www.haomeiwen.com/subject/vvzedxtx.html