1.

#include <Psapi.h>
#pragma comment(lib, "Psapi.lib")
DWORD GetProcIDFromName(LPCTSTR lpName)
{
DWORD aProcId[], dwProcCnt, dwModCnt;
HMODULE hMod;
TCHAR szPath[MAX_PATH]; //枚举出所有进程ID
if (!EnumProcesses(aProcId, sizeof(aProcId), &dwProcCnt)){
//cout << "EnumProcesses error: " << GetLastError() << endl;
return ;
} //遍例所有进程
for (DWORD i = ; i < dwProcCnt; ++i)
{
//打开进程,如果没有权限打开则跳过
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, aProcId[i]);
if (NULL != hProc)
{
//打开进程的第1个Module,并检查其名称是否与目标相符
if (EnumProcessModules(hProc, &hMod, sizeof(hMod), &dwModCnt))
{
GetModuleBaseName(hProc, hMod, szPath, MAX_PATH);
if ( == lstrcmpi(szPath, lpName))
{
CloseHandle(hProc);
return aProcId[i];
}
}
CloseHandle(hProc);
}
}
return ;
}

2.

#include <Tlhelp32.h>
BOOL GetProcessIdByName(LPCTSTR lpszProcessName, PDWORD pdwProcessId)
{
*pdwProcessId = ;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, );
if (hSnapshot == INVALID_HANDLE_VALUE)
{
return FALSE;
} PROCESSENTRY32 pe;
pe.dwSize = sizeof pe; if (Process32First(hSnapshot, &pe))
{
do {
if (lstrcmpi(lpszProcessName, pe.szExeFile) == )
{
CloseHandle(hSnapshot);
*pdwProcessId = pe.th32ProcessID;
return TRUE;
}
} while(Process32Next(hSnapshot, &pe));
} CloseHandle(hSnapshot);
return FALSE;
}

独立调用此函数时会返回空,在IDE下却可以,这就需要提权了,提权参考Win32 OpenProcess打开进程失败,返回5无权限操作

win32进程名查找进程PID的更多相关文章

  1. Python 使用标准库根据进程名获取进程PID

    应用场景 在进行 Linux 运维的环境中,我们经常会遇到维护同一台服务器上的多个程序,涉及到程序的启动.关闭和重启操作. 通常这些程序之间存在着相互依存的关系需要进行依次的启动关闭操作. 下面介绍几 ...

  2. Linux用ps命令查找进程PID再用kill命令终止进程的方法

    使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关进程.这在linux系统下是极其容易的事情,你只需要kill xxx即 ...

  3. linux查找进程pid并杀掉

    命令:ps aux | grep `pwd` | grep -v  grep | awk '{print $2}' | xargs kill -9 详细解释[我的有道云笔记,不知道为什么没法直接复制到 ...

  4. Bash Shell 获取进程 PID

    转载地址:http://weyo.me/pages/techs/linux-get-pid/ 导读 Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运 ...

  5. linux命令(26):Bash Shell 获取进程 PID

    转载地址:http://weyo.me/pages/techs/linux-get-pid/ 根据pid,kill该进程:http://www.cnblogs.com/lovychen/p/54113 ...

  6. 014-交互式Shell和shell脚本获取进程 pid

    Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程 1.交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 ...

  7. windows中根据进程PID查找进程对象过程深入分析

    这里windows和Linxu系列的PID 管理方式有所不同,windows中进程的PID和句柄没有本质区别,根据句柄索引对象和根据PID或者TID查找进程或者线程的步骤也是一样的.   句柄是针对进 ...

  8. WINDOWS API ——CREATETOOLHELP32SNAPSHOT——查找进程

    原文:http://www.cnblogs.com/wind-net/archive/2012/10/26/2741458.html //根据进程名获取进程ID DWORD GetPidByProce ...

  9. C++ 实现 查找进程, 杀死进程, 启动进程, 进程重启

    头文件: #include <Windows.h>#include <tlhelp32.h>#include <tchar.h>#include <Shell ...

随机推荐

  1. Git使用教程

    配置Git 首先在本地创建ssh key: $ ssh-keygen -t rsa -C "your_email@youremail.com" 后面的your_email@your ...

  2. 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)

    这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...

  3. mina中游戏客户端服务端数据交互流程

    ====================================================================================CLIENT    encode ...

  4. UIRefreshControl

    在iOS6中UITableViewController 已经集成了UIRefreshControl 控件.UIRefreshControl目前只能用于UITableViewController

  5. 使用getParts()上传多个文件

    <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv=&quo ...

  6. 377. Combination Sum IV

    问题 Given an integer array with all positive numbers and no duplicates, find the number of possible c ...

  7. linux系统的初化始配置

    一.网络的初始化 1.ip地址的修改(临时生效) 使用ifconfig命令 ifconfig 网卡名 ip地址 子网掩码 [root@localhost /]# ifconfig eno1677773 ...

  8. 用ILSpy查看Session.SessionID的生成算法

    缘由 asp.net Session在InProc模式下,容易丢失,经常需要重新登录,且不支持分布式共享. 所以在研究Redis实现原生的Session,本来想用GUID作为key存入cookie,又 ...

  9. CSS系列:在HTML中引入CSS的方法

    HTML与CSS是两个作用不同的语言,它们同时对一个网页产生作用,因此必须将CSS与HTML链接在一起使用.在HTML中,引入CSS的方法主要有4种:行内式.内嵌式.导入式和链接式. 1. 行内式 行 ...

  10. android textView 总是有paddingtop怎么解决

    android的TextView即使设置wrap_content,如果打开开发者模式->显示布局边界,能看到textView还是存在paddingTop, 解决方法: android:inclu ...