得到指定进程PID

//#include "targetver.h"
#include "stdio.h"
#include <windows.h>
#include <tlhelp32.h>
int GetProcessIdByName(WCHAR* Namestr) //进程名取pid
{
    HANDLE hSnapshot;
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(pe32);//取大小
    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if (hSnapshot!= NULL)
    {
        if (Process32First(hSnapshot,&pe32))//取第一个进程
        {
            do {
                if (strcmp((char*)Namestr,(char*)&pe32.szExeFile)==0)//对比
                {
                    return pe32.th32ProcessID;
                }
            } while (Process32Next(hSnapshot,&pe32));//取第下一个进程
        }
        CloseHandle(hSnapshot);//关闭内核对象
    }
    return 0;
}

int main()
{
    int pid=GetProcessIdByName(L"QQ.exe");
    printf("pid=%d\r\n",pid);
    getchar();
    return 0;
}
时间: 2024-10-27 10:49:52

得到指定进程PID的相关文章

监控指定进程

对于守护中间件是非常有用的.中间件不可能绝对的稳定而不出问题,中间件有可能因比较严重的错误导致当机或者进程被人为地错误地关闭了中间件. 有了这个自动守护进程的存在,这一切的问题都可以迎刃而解. program Monitor; // {$APPTYPE CONSOLE} usesWinapi.Windows,System.SysUtils,ProcLib in 'ProcLib.pas'; varMutex, h: HWND; constc_AppName = 'server.exe';c_Cl

Linux kill 杀死指定进程

一  杀死指定进程 现知道有一个php线程正在运行,需要杀死 root 26278 1 0 2015 ? 00:00:31 /usr/local/php/bin/php /var/www/html/redis/daemon/daemon_register.phproot 26280 1 0 2015 ? 00:00:34 /usr/local/php/bin/php /var/www/html/redis/daemon/daemon_register.php ps -ef 查询运行进程 [ema

【C#】指定进程关闭&amp;闪讯下的Wifi共享

要在目前版本的闪讯中共享网络首先需要关闭闪讯附带的singleNet.exe进程. 而在密密麻麻的进程列表里找到指定进程是件非常考验眼力的事情(即使按‘s’定位也足够眼花缭乱了). 这边花几分钟时间写了个进程结束的小工具,在这里分享一下 Github源程序(项目文件): https://github.com/Blz-Galaxy/KillSX 因为主函数使用了参数列表,使用的时候在快捷方式中加入需要结束的进程名字就好- C#实现 很简单的几行代码 using System; using Syst

查看指定进程的IO/CPU/MEM/带宽

一.查看指定进程的cpu和内存的占用情况 首先找到进程id,然后使用top命令进行查看 二.查看指定进程的带宽占用情况 使用nethogs工具即可查看,安装命令:yum -y install nethogs      apt -y install nethogs nethogs 网卡   即可查看带宽的占用情况 PS:nethogs命令无法根据pid来查看带宽 三.查看指定进程的磁盘io读写情况 使用pidstat命令即可查看,安装命令:yum -y install sysstat pidsta

通过Xlib枚举指定进程下所有窗体

在windows系统下如果想要枚举指定进程的窗体,我们可以通过EnumWindows加上自己实现的回调函数进行实现,那么在linux下该如何做呢? 其实也很简单,在linux下,我们可以通过xlib中提供的API进行实现,关于xlib后面会专门写一篇文章讲解. 一.实现思路 从root窗体开始逐层遍历每一个窗体,将这些窗体所属进程与给定进程比较从而进行筛选. 二.实现代码 #include <X11/Xlib.h> #include <X11/Xatom.h> #include &

zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控

zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控 1.自带监控模板进行os的监控 进入/usr/local/zabbix/etc/zabbix_agentd.conf 配置文件修改 LogRemoteCommands=1     ###开启脚本功能 Server=192.168.5.129     ##修改zabbix指向的服务器: 重启zabbix_agentd.zabbix_server服务 在配置-->主机-->添加主机--> 配置主机信息主

delphi根据进程PID获取程序所在路径的函数(用OpenProcess取得句柄,用GetModuleFileNameEx取得程序名)

uses psapi; {根据进程PID获取程序所在路径的函数}function GetProcessExePath(PID: Cardinal): string;varpHandle: THandle;buf: array[0..MAX_PATH] of Char;begin{获取进程句柄}pHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PID);{获取进程路径}GetModuleFileN

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

这里windows和Linxu系列的PID 管理方式有所不同,windows中进程的PID和句柄没有本质区别,根据句柄索引对象和根据PID或者TID查找进程或者线程的步骤也是一样的. 句柄是针对进程而言,也就是句柄一定所属于某个进程,为某个进程私有的资源.句柄的分配来自于进程私有的句柄表.而进程PID和线程TID和句柄的分配原理是一样的,但是来源就不同了.进程PID来源于系统中一张全局的句柄表PSpcidtable.从级别上来说Pspcidtable和进程对象eprcess中的objecttab

通过Docker进程pid获取容器id

虽然Docker是通过namespace隔离技术实现容器间进程的隔离,但在运行Docker的主机中,Docker容器内的进程与主机内运行的进程是在同一个namespace(假设叫A)的.虽然在Docker容器内应用进程的父进程都是pid为1的那个进程(这些进程都是单独的namespace,这个namespace与前面提到的namespace不是同一个,此处假设为B),但在namespace A中Docker内容器实际的父进程都是Docker daemon,由于父进程具有对子进程管理的能力,而子进