`
mylove2060
  • 浏览: 331949 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

进程-取得当前可执行程序的进程号-对比前者通过名字取得的进程号

阅读更多
工程编译输出文件为Test.exe

#include "windows.h"
#include <string>
#include "tlhelp32.h"
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <vector>

DWORD FindProcessIdByName(const std::string& in_processName)   
{   

	PROCESSENTRY32 processInfo;   
	processInfo.dwSize = sizeof(processInfo);   

	HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);   
	if (processesSnapshot == INVALID_HANDLE_VALUE)   
	{   
		return 0;   
	}   

	//Process First in snapshot and traverse the list.   
	Process32First(processesSnapshot, &processInfo);   
	if (!in_processName.compare(processInfo.szExeFile))   
	{   
		//Process exists.   
		CloseHandle(processesSnapshot);   
		return processInfo.th32ProcessID;   
	}   

	while ( Process32Next(processesSnapshot, &processInfo) )   
	{   
		if ( !in_processName.compare(processInfo.szExeFile) )   
		{   
			CloseHandle(processesSnapshot);   
			return processInfo.th32ProcessID;   
		}   
	}   

	CloseHandle(processesSnapshot);   
	return 0;   
} 


int _tmain(int argc, _TCHAR* argv[])
{

	std::cout<<"Current Process ID:"<<GetCurrentProcessId()<<std::endl;
	std::cout<<"Test.exe Process ID:"<<FindProcessIdByName("Test.exe")<<std::endl;
	return 0;
}




结果:


Current Process ID:4148
Test.exe Process ID:4148
分享到:
评论

相关推荐

    操作系统课程设计—进程控制

    其他的可显示当前进程信息的API函数如GetStartupInfo()和GetProcessShutdownParameters() 可给出进程的配置信息。 通常,一个进程需要它的运行期环境的信息。例如API函数GetModuleFileName() 和GetCommandLine() ,...

    如何使用C# 捕获进程输出

    为了方便使用,实现了两个帮助类来方便的获取进程的输出,分别是 ProcessExecutor 和 CommandRunner,前者更为灵活,可以通过事件添加自己的额外事件订阅处理,后者为简化版,主要是只获取输出的场景,两者的实现...

    《计算机操作系统》期末复习指导

    (3)引入进程的意义是描述多道程序设计系统中程序的动态执行过程。 2、进程的定义及特征 (1)程序和进程的区别 (2)进程的五个基本特征:动态性、并发性、独立性、制约性、结构性 3、进程...

    IIS6.0 IIS,互联网信息服务

    比如你本机只有一个IP地址为192.168.0.1,你已经建立(或设置)好了两个Web站点,一个是“默认Web站点”,一个是“我的第二个Web站点”,现在你想输入“www.enanshan. com”可直接访问前者,输入“www.popunet. com...

    applem2_20120610苹果引擎配套工具,内有登陆器配置

    3、增加检测人物当前攻击的怪物名字:CheckHitMonName 怪物名字 4、增加地图参数:HITMON(@XXX) 当前地图攻击怪物时触发QFunction-0.txt中对应的脚本段 5、怪物数据库的WALK_SPD字段允许为-1:表示当前怪物不移动 6...

    Dalvik虚拟机 PPT版

    例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等,差别在于两者执行的指令集是不一样的,并且前者的指令集是基本寄存器的,而后者的指令集...

    C++开源程序库 C++开源程序库

    同时,Lua便于嵌入C/C++程序,而且编译执行速度非常快,可以说是目前解决C/C++程序配置管理问题的一个出色方案。 9、密码及安全:OpenSSL 安全是今天进行C/C++编程无法回避和必须重视的问题。然而编写安全的应用...

    Linux操作系统基础教程

    (Torvalds@kruuna.helsinki.fi)写了 Linux核心程序的 0.02 版开始的,但其后的发展却几乎都 是由互联网上的 Linux社团(Linux Community)互通交流而完成的。Linux 不属于任何一 家公司或个人,任何人都可以免费取得...

    [详细完整版]14操作系统.doc

    1.试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较. a. 分时系统是一种通用系统,主要用于运行... 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而 暂停执行,以及由撤

    软件工程-理论与实践(许家珆)习题答案

    C) 包括程序和文档  D) 可独立构成计算机系统 2. 软件工程三要素是(C D)。 A) 技术、方法和工具  B) 方法、工具和过程  C) 方法、对象和类  D) 过程、模型、方法 3. 包含风险分析的软件工程...

    AppInventor2-2018版.rar

    用鼠标右键点击AI伴侣右上角的“x”号,可以弹出右键菜单,其中前两项分别为“重新加载应用”及“模拟浏览器重启”,如果把AI伴侣理解为浏览器,那么前者相当于刷新页面,后者相当于重启浏览器。 图片 错误情况...

    asp.net面试题

    答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结. 11.ASP.net的身份验证方式有哪些?分别是什么原理? 答:form认证,windows集成认证等,原理不清楚. 12.进程和线程分别怎么理解? 答...

    C/C++笔试题(附答案,华为面试题系列)

    程因 I/O 而处于等待状态时,整个进程就会被调度程序切换为等待状态,其他线程得不 到运行的机会;而内核线程则没有各个限制,有利于发挥多处理器的并发优势,但却占 用了更多的系统开支。 Windows NT和OS/2支持...

    WinHex V15.1 和 V16.7 汉化版

    这些功能除了在菜单里面进行选择之外,还可以通过菜单下面的一列快捷按钮来执行。  ◇在使用WinHex 时首先打开一个需要处理的文件,窗口中显示十六进制 Hex 格式的数值和地址。在旁边的区域显示文件名称、大小、...

    一文理清ApacheSpark内存管理脉络

    在执行Spark的应用程序时,Spark集群会启动Driver和Executor两种JVM进程,前者为主控进程,负责创建Spark上下文,提交Spark作业(Job),并将作业转化为计算任务(Task),在各个Executor进程间协调任务的调度,后者负责...

    HttpHandler HttpModule入门篇

    HttpHandler,HttpModule,IHttpHandlerFactory,他们的执行(顺序)大致的执行过程是这样的:client端发送页面请求,被IIS的某个进程截获,它根据申请的页 面后缀(.aspx)不同,调用不同的页面处理程序(.asp-&gt;asp.dll;...

    java7rt.jar源码-Java_JVM:这是我的JavaJVM学习笔记

    执行 执行一个所谓的Java程序时,真正的执行的是一个叫做Java虚拟机的进程 3.退出 程序正常结束;程序遇到错误或异常时终止运行;Runtime或System类调用exit()方法或Runtime调用half()方法 JVM的框架: 执行引擎: ...

    ApacheSpark内存管理详解

    Spark作为一个基于内存的分布式计算引擎,其... 在执行Spark的应用程序时,Spark集群会启动Driver和Executor两种JVM进程,前者为主控进程,负责创建Spark上下文,提交Spark作业(Job),并将作业转化为计算任务(Task)

    chaostoolkit-lib:Chaos Toolkit核心库

    前者是决定是否可以执行实验的大门。 后者看系统是否偏离正常。 运行实验中声明的探针和动作它依次运行实验方法中的步骤,首先应用稳定探针,然后应用动作,最后关闭探针。 作为JSON负载的日志将返回实验运行。 ...

    android系统原理及开发要点详解

     4.4 init可执行程序 66  4.5 Shell工具 72  4.6 C++工具库libutils 75  4.6.1 libutils的基本内容 75  4.6.2 Binder 76  4.6.3 libutils中的其他内容 82  4.7 Android的系统进程 85  4.7.1 servicemanager ...

Global site tag (gtag.js) - Google Analytics