Window获取所有运行的进程

本文介绍了一个使用C++实现的任务管理器遍历方法,通过创建进程快照并遍历所有活动进程来获取进程ID和名称,并记录遍历时间。该程序利用了Windows API函数如CreateToolhelp32Snapshot和Process32First等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过遍历任务管理器,输出当前正在运行的进程ID和Name。

同时打印出遍历过程所消耗的时间。

/*
@Date:2014/6/8
@Author:Alex
*/

#include <iostream>
#include <string>  
#include <map>  
#include <windows.h>  
#include <TlHelp32.h>
using namespace std;

bool traverseProcesses(map<std::wstring,int> &_mapProcess)
{
    PROCESSENTRY32 pe32;  
    pe32.dwSize = sizeof(pe32);  
  
    HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  
    if(hProcessSnap == INVALID_HANDLE_VALUE) {  
        std::cout << "CreateToolhelp32Snapshot Error!" << std::endl;;  
        return false;  
    }  
  
    BOOL bResult =Process32First(hProcessSnap, &pe32);  
  
    int num(0);  
	
    while(bResult)   
    {  
		std::wstring name = pe32.szExeFile;  
        int id = pe32.th32ProcessID;  
 
		std::cout << "[" << ++num << "]: "<< "--ProcessID:" << id;  

		std::wcout<<"--Process Name:" << name<<endl;
  
        _mapProcess.insert(std::pair<wstring, int>(name, id)); //字典存储  
        bResult = Process32Next(hProcessSnap,&pe32);  
    }  
  
    CloseHandle(hProcessSnap);  
    return true;  
}
int main(int argc, char*argv[])
{
	map<std::wstring,int> mapProcess;
	
	DWORD start = ::GetTickCount();
	traverseProcesses(mapProcess);
	
	DWORD end = ::GetTickCount();
	cout<<"waste time:"<<end-start<<endl;
	getchar();
	return 0;
}

### Windows 11 上运行 MSI 安装文件的方法 #### 开启 Windows Installer 服务 为了确保能够在 Windows 11 中正常运行 MSI 文件,首先需要确认 **Windows Installer** 服务已启用。可以通过以下方法操作:按下 `Windows + R` 键组合,在弹出的运行对话框中输入 `services.msc` 并回车[^1]。随后在服务列表中找到名为 “Windows Installer” 的条目,将其启动类型设置为自动并启动该服务。 #### 使用命令行工具执行 MSI 文件 当遇到无法通过双击方式打开 MSI 文件的情况时,可以尝试利用命令提示符来完成安装过程。具体做法如下:以管理员身份运行 CMD 或 PowerShell,接着键入 `msiexec /package` 后紧跟目标 MSI 文件的具体路径再按 Enter 执行即可[^2]。例如: ```cmd msiexec /package C:\path\to\yourfile.msi ``` 此法适用于那些因权限不足或其他原因而未能成功启动图形界面安装向导的情形下作为替代方案使用。 #### 下载官方提供的最新版 MSI 软件包 对于某些特定应用(比如数据库管理系统 MySQL),建议从其官方网站获取最新的 MSI 版本进行本地部署。访问地址如 https://dev.mysql.com/downloads/windows/installer/ 可供参考下载所需组件[^3]。这样不仅可以获得更稳定可靠的版本支持,同时也减少了潜在的安全风险隐患。 #### 配置环境变量以便顺利调用 Python 等依赖项 值得注意的是,在部分场景里可能还会涉及到额外软件的支持需求——像 Python 解释器这样的开发工具就经常被各类应用程序所集成进来一起分发出去给最终用户端做二次开发用途之需;然而有时候即使已经完成了相应语言平台的基础铺设工作之后仍然会出现诸如 `'python' 不是内部或外部命令...` 类似的错误提示信息,则极有可能是因为当前用户的系统 PATH 环境变量里面缺少指向实际可执行二进制位置的相关配置所致[^4]。此时就需要手工编辑注册表或者借助 GUI 工具将对应目录追加进去才行。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值