1. #include <windows.h>
  2. #include "psapi.h"
  3. #include"stdio.h"
  4. #include <tlhelp32.h>
  1. //
  2. //推断进程是否存在
  3. //2012-09-10
  4. BOOL FindProcess()
  5. {
  6. int i=0;
  7. PROCESSENTRY32 pe32;
  8. pe32.dwSize = sizeof(pe32);
  9. HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  10. if(hProcessSnap == INVALID_HANDLE_VALUE)
  11. {
  12. i+=0;
  13. }
  14. BOOL bMore = ::Process32First(hProcessSnap, &pe32);
  15. while(bMore)
  16. {
  17. //printf(" 进程名称:%s \n", pe32.szExeFile);
  18. if(stricmp("进程名",pe32.szExeFile)==0)
  19. {
  20. //printf("进程执行中");
  21. i+=1;
  22. }
  23. bMore = ::Process32Next(hProcessSnap, &pe32);
  24. }
  25. if(i>1){           //大于1,排除自身
  26. return true;
  27. }else{
  28. return false;
  29. }
  30. }

调用这个函数,假设存在则自己主动退出,假设不存在则正常执行。

转自:http://blog.csdn.net/zhensoft163/article/details/7967993

C++ 推断进程是否存在的更多相关文章

  1. Linux进程ID号--Linux进程的管理与调度(三)【转】

    Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数据和结构,Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的,是内核中最重要的数据结构之一. 该数据结 ...

  2. Linux进程ID号--Linux进程的管理与调度(三)

    转自:http://blog.csdn.net/gatieme/article/category/6225543 日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux- ...

  3. linux 新进程的创建

    慕课18原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.背景知识: 1. ...

  4. PHP实现程序单例执行

    原创文章,转载请注明出处:http://huyanping.sinaapp.com/?p=222 作者:Jenner 一.场景描写叙述: 近期我们一块业务.须要不断的监听一个文件夹的变化.假设文件夹中 ...

  5. Andrdoid适当的执行行为拦截的应用----从底部C截距

    前一个概要文章称这项研究我的一些主要细节.这里就不在说.但还需要指出的是.关于三大感谢上帝愿意分享知识(在我看来,人们懂得分享和慎重考虑之神,奥地利不一定是技术牛~~) 第一篇:http://blog ...

  6. Linux 内核进程管理之进程ID

    Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数据和结构,Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的,是内核中最重要的数据结构之一.该数据结构 ...

  7. 获取Linux进程运行在哪个CPU内核上面的方法

    首先,当某些时候,在一段程序或者借助第三方软件进行程序协助的时候,在性能的优化,以及程序bug的排除上面,可能会想知道该程序执行的进程被调度到了哪一个CPU内核进行工作,从而可以推断是否是受限于硬件还 ...

  8. 操作系统开发系列—13.a.进程 ●

    进程的切换及调度等内容是和保护模式的相关技术紧密相连的,这些代码量可能并不多,但却至关重要. 我们需要一个数据结构记录一个进程的状态,在进程要被挂起的时候,进程信息就被写入这个数据结构,等到进程重新启 ...

  9. Python开发【第九章】:线程、进程和协程

    一.线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 1.t ...

随机推荐

  1. 通过URL推送POST数据

    由于到了一家新公司重新开始接触MVC和其他的一些东西.所以的重新拾起许多东西. 前一段时间让我写一个和第三方公司推送对接的方法.通过对方提供的URL把数据post推送出去. 我把url到了web.co ...

  2. poj 1595

    #include <iostream> #define N 10010 using namespace std; int a[N],b[N]; int prime(int a) { int ...

  3. oracle中循环插入语句

    DECLARE i number:=30000;BEGIN for i in 1..100 loop insert into Maternal_Info(id,sjh,bbsr,cf) values( ...

  4. Core Data 学习简单整理01

    Core Data是苹果针对Mac和iOS平台开发的一个框架, 通过CoreData可以在本地生成数据库sqlite,提供了ORM的功能,将对象和数据模型相互转换 . 通过Core Data管理和操作 ...

  5. [<DDGuessYouLIkeModel 0x7c99faf0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key star.

    出现这个提示是由于以下原因造成: 这里我用到了MJExtension将字典转为模型,但再转为模型的时候,出现这个提示,原因就是因为NSInteger后面多一个一个“*” @property (nona ...

  6. 3D dungeon

    算法:广搜: 描述 You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is comp ...

  7. JQUERY1.9学习笔记 之层级选择器(四)

    下一个邻居选择器(“prev ~ siblings”) 描述:选择所有"prev"后的邻居选择器,他们有相同的父节点. 注意:prev + next 与 prev ~ siblin ...

  8. 64位window7,php5.5.10 +IIS7 配置

    首先添加IIS. 控制面板-〉程序-〉打开或关闭Windows功能 1. 勾选“Internet 信息服务”   2. 勾选“IIS 管理控制台” Internet 信息服务-〉Web 管理工具   ...

  9. idHTTP最简洁的修改和取得Cookie例子

    procedure TForm1.Button1Click(Sender: TObject); var HTTP: TidHTTP; html, s: string; i: integer; begi ...

  10. C++实现Log()日志函数

    转载请注明原创:http://www.cnblogs.com/StartoverX/p/4600649.html 需求:Log()函数,能够自动根据时间记录日志信息,要求不定参数类型和参数个数. 第一 ...