枚举进程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
DWORD FindProcess(TCHAR *strProcessName)
{
    DWORD aProcesses[1024], cbNeeded, cbMNeeded;
    HMODULE hMods[1024];
    HANDLE hProcess;
    TCHAR szProcessName[MAX_PATH];
 
    if (!EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded))  return 0;
    for (int i = 0; i < (int)(cbNeeded / sizeof(DWORD)); i++)
    {
        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]);
        EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbMNeeded);
        GetModuleFileNameEx(hProcess, hMods[0], szProcessName, sizeof(szProcessName));
 
        CString strPrcFullName(szProcessName);
        CString strPrcName(strProcessName);
        if (_tcsstr(strPrcFullName, strPrcName) || _tcsstr(strPrcFullName, strPrcName.MakeLower()))
        {
            CString strNameFull;
            strNameFull.Format(_T("Process full name:\n%s;"), szProcessName);
            //AfxMessageBox(strNameFull);
            return(aProcesses[i]);
        }
    }
 
    return 0;
}

  

posted on   lydstory  阅读(135)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-04-16 查看程序内存是否泄露
2018-04-16 Ubuntu 安装QT5 后编译程序报错: FindQt5Widgets.cmake
2018-04-16 pcd转换ply
2018-04-16 点云数据保存为pcd文件_pcd_write.cpp

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示