工程编译输出文件为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() ,...
为了方便使用,实现了两个帮助类来方便的获取进程的输出,分别是 ProcessExecutor 和 CommandRunner,前者更为灵活,可以通过事件添加自己的额外事件订阅处理,后者为简化版,主要是只获取输出的场景,两者的实现...
(3)引入进程的意义是描述多道程序设计系统中程序的动态执行过程。 2、进程的定义及特征 (1)程序和进程的区别 (2)进程的五个基本特征:动态性、并发性、独立性、制约性、结构性 3、进程...
比如你本机只有一个IP地址为192.168.0.1,你已经建立(或设置)好了两个Web站点,一个是“默认Web站点”,一个是“我的第二个Web站点”,现在你想输入“www.enanshan. com”可直接访问前者,输入“www.popunet. com...
3、增加检测人物当前攻击的怪物名字:CheckHitMonName 怪物名字 4、增加地图参数:HITMON(@XXX) 当前地图攻击怪物时触发QFunction-0.txt中对应的脚本段 5、怪物数据库的WALK_SPD字段允许为-1:表示当前怪物不移动 6...
例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等,差别在于两者执行的指令集是不一样的,并且前者的指令集是基本寄存器的,而后者的指令集...
同时,Lua便于嵌入C/C++程序,而且编译执行速度非常快,可以说是目前解决C/C++程序配置管理问题的一个出色方案。 9、密码及安全:OpenSSL 安全是今天进行C/C++编程无法回避和必须重视的问题。然而编写安全的应用...
(Torvalds@kruuna.helsinki.fi)写了 Linux核心程序的 0.02 版开始的,但其后的发展却几乎都 是由互联网上的 Linux社团(Linux Community)互通交流而完成的。Linux 不属于任何一 家公司或个人,任何人都可以免费取得...
1.试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较. a. 分时系统是一种通用系统,主要用于运行... 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而 暂停执行,以及由撤
C) 包括程序和文档 D) 可独立构成计算机系统 2. 软件工程三要素是(C D)。 A) 技术、方法和工具 B) 方法、工具和过程 C) 方法、对象和类 D) 过程、模型、方法 3. 包含风险分析的软件工程...
用鼠标右键点击AI伴侣右上角的“x”号,可以弹出右键菜单,其中前两项分别为“重新加载应用”及“模拟浏览器重启”,如果把AI伴侣理解为浏览器,那么前者相当于刷新页面,后者相当于重启浏览器。 图片 错误情况...
答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结. 11.ASP.net的身份验证方式有哪些?分别是什么原理? 答:form认证,windows集成认证等,原理不清楚. 12.进程和线程分别怎么理解? 答...
程因 I/O 而处于等待状态时,整个进程就会被调度程序切换为等待状态,其他线程得不 到运行的机会;而内核线程则没有各个限制,有利于发挥多处理器的并发优势,但却占 用了更多的系统开支。 Windows NT和OS/2支持...
这些功能除了在菜单里面进行选择之外,还可以通过菜单下面的一列快捷按钮来执行。 ◇在使用WinHex 时首先打开一个需要处理的文件,窗口中显示十六进制 Hex 格式的数值和地址。在旁边的区域显示文件名称、大小、...
在执行Spark的应用程序时,Spark集群会启动Driver和Executor两种JVM进程,前者为主控进程,负责创建Spark上下文,提交Spark作业(Job),并将作业转化为计算任务(Task),在各个Executor进程间协调任务的调度,后者负责...
HttpHandler,HttpModule,IHttpHandlerFactory,他们的执行(顺序)大致的执行过程是这样的:client端发送页面请求,被IIS的某个进程截获,它根据申请的页 面后缀(.aspx)不同,调用不同的页面处理程序(.asp->asp.dll;...
执行 执行一个所谓的Java程序时,真正的执行的是一个叫做Java虚拟机的进程 3.退出 程序正常结束;程序遇到错误或异常时终止运行;Runtime或System类调用exit()方法或Runtime调用half()方法 JVM的框架: 执行引擎: ...
Spark作为一个基于内存的分布式计算引擎,其... 在执行Spark的应用程序时,Spark集群会启动Driver和Executor两种JVM进程,前者为主控进程,负责创建Spark上下文,提交Spark作业(Job),并将作业转化为计算任务(Task)
前者是决定是否可以执行实验的大门。 后者看系统是否偏离正常。 运行实验中声明的探针和动作它依次运行实验方法中的步骤,首先应用稳定探针,然后应用动作,最后关闭探针。 作为JSON负载的日志将返回实验运行。 ...
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 ...