首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在不使用popen()或system()的情况下按名称查找进程的PID

在不使用popen()或system()的情况下按名称查找进程的PID,可以使用以下方法:

  1. 使用C++的Boost库中的process库

Boost.Process是一个C++库,用于管理和控制操作系统进程。它提供了一个简单的API,用于创建、监控和检索进程信息。以下是一个示例代码,演示如何使用Boost.Process库查找进程的PID:

代码语言:c++
复制
#include<boost/process.hpp>
#include<boost/process/environment.hpp>
#include<iostream>
#include<string>

int main() {
    std::string process_name = "notepad.exe";
    boost::process::context ctx;
    boost::process::environment env = ctx.environment();
    std::string cmd = "WMIC PROCESS WHERE \"name='" + process_name + "'\" GET ProcessId";
    boost::process::ipstream is;
    boost::process::child c(cmd, boost::process::std_out > is);
    std::string pid;
    is >> pid;
    std::cout << "PID of "<< process_name << " is "<< pid<< std::endl;
    return 0;
}
  1. 使用Windows API

Windows API提供了一个名为CreateToolhelp32Snapshot的函数,可以创建一个包含所有当前进程信息的快照。然后,可以使用Process32First和Process32Next函数遍历快照中的进程,查找具有特定名称的进程并获取其PID。以下是一个示例代码,演示如何使用Windows API查找进程的PID:

代码语言:c++
复制
#include<windows.h>
#include <tlhelp32.h>
#include<iostream>
#include<string>

int main() {
    std::string process_name = "notepad.exe";
    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 process_entry;
    process_entry.dwSize = sizeof(PROCESSENTRY32);
    if (Process32First(snapshot, &process_entry)) {
        do {
            if (process_entry.szExeFile == process_name) {
                std::cout << "PID of "<< process_name << " is "<< process_entry.th32ProcessID<< std::endl;
                break;
            }
        } while (Process32Next(snapshot, &process_entry));
    }
    CloseHandle(snapshot);
    return 0;
}

这两种方法都可以在不使用popen()或system()的情况下按名称查找进程的PID。

相关搜索:无法在python中按名称获取进程的PID使用Popen在没有控制台的情况下在pythonw中运行进程有没有办法在不处理错误的情况下按索引值查找?在不冻结主线程的情况下创建并主动使用进程在不丢失元素名称的情况下查找列表中的唯一元素在不按Enter键或移动焦点的情况下应用新单元格值如何使用Jquery在id、名称或类不同的情况下获取特定的表头文本Selenium在不增加迭代时间的情况下使用find_element查找循环中的元素在不知道sql server数据库中的表或列名称的情况下查找像元值的位置在不使用split()或大量正则表达式的情况下查找单词数在不使用列表、函数或字典的情况下查找第二个最小的数字在python 3 (Windows)中,在不按Enter键的情况下使用带超时的输入提示来计算输入如何在xpath表达式中使用AND运算来查找在文章和进程文件夹中都有pid=1234的作者总数?是否可以在不使用stderr、stdin或stdout的情况下使用管道在两个进程之间创建通信流?如何在不按CTRL键的情况下使用ASP.NET在选择元素中选择多个项目?有没有一种方法可以在不使用名称空间std或使用std::前缀的情况下引用cout?是否可以使用JavaScript在客户关系管理的OOB查找对话框窗口中获取视图的名称或IDpygame -如何在不使用类/对象、Sprite或任何其他模块的情况下按顺序显示存储在列表中的png图像?在Laravel 8中,如何使用输入的值在不刷新页面或提交表单的情况下在同一页上呈现特定内容是否使用T-SQL、C#或Python在不超过一次命中表的情况下,对所有列的不同记录值进行计数?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

3分13秒

TestComplete简介

领券