获取完整的正在运行的进程列表(Visual C++)

2024-03-29

我目前正在使用 EnumProcesses 函数来获取正在运行的进程的列表。然而,由于我的应用程序在用户空间中运行,因此它无法获取不在用户下运行的进程(包括系统进程)的句柄。是否有其他方法可以让我访问这些内容?我所需要的只是进程名称。


只是为了补充这个答案,我为您只查找一个特定进程而不是整个列表的情况构建了这个。

bool FindRunningProcess(AnsiString process) {
/*
Function takes in a string value for the process it is looking for like ST3Monitor.exe
then loops through all of the processes that are currently running on windows.
If the process is found it is running, therefore the function returns true.
*/
    AnsiString compare;
    bool procRunning = false;

    HANDLE hProcessSnap;
    PROCESSENTRY32 pe32;
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

    if (hProcessSnap == INVALID_HANDLE_VALUE) {
        procRunning = false;
    } else {
        pe32.dwSize = sizeof(PROCESSENTRY32);
        if (Process32First(hProcessSnap, &pe32)) { // Gets first running process
            if (pe32.szExeFile == process) {
                procRunning = true;
            } else {
                // loop through all running processes looking for process
                while (Process32Next(hProcessSnap, &pe32)) { 
                    // Set to an AnsiString instead of Char[] to make compare easier
                    compare = pe32.szExeFile;
                    if (compare == process) {
                        // if found process is running, set to true and break from loop
                        procRunning = true;
                        break;
                    }
                }
            }
            // clean the snapshot object
            CloseHandle(hProcessSnap);
        }
    }

    return procRunning;
}

我应该注意到,这是在 Embarcadero RAD Studio (C++ Builder) 中编写的,并且 @Remy_Lebeau System::AnsiString 是一个 C++Builder 字符串类,用于其 VCL/FMX 框架中的 8 位 ANSI 字符数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取完整的正在运行的进程列表(Visual C++) 的相关文章

  • 为什么 Visual Studio 2008 中删除了在新 ATL 项目中使用属性的选项?

    这是来自 MSDN 评论的文本 根据 ATL Internals 2ed 一书 属性的使用已被弃用 不应在新的 ATL 项目中使用 但为什么 在 ATL 中 这些属性是编译器的技巧 它们不像 C 中的属性那样是平台的核心部分 它们的调试也比
  • 如何在 Windows 10 上设置玻璃混合颜色?

    使用无证的SetWindowCompositionAttribute API http vhanla codigobit info 2015 07 enable windows 10 aero glass aka blur html在 Wi
  • 仅带有取消按钮的消息框

    我们可以有一个只有取消按钮的消息框吗 如果是这样 有什么提示吗 是否有内置的 api 方法来仅获取带有取消按钮的消息框 如何创建自定义模式对话框 有链接吗 您可以通过以下方式使用线程本地 CBT 挂钩SetWindowsHookEx 定制M
  • 获取进程的返回值

    您好 我正在尝试执行以下操作 我有一个可以接受参数 数字 的过程 并返回这些数字的总和 Process P Process Start sPhysicalFilePath Param int result P ExitCode 我从 Exi
  • Win32 DrawText 行高

    我正在调用 Win32DrawText函数将一些文本输出到设备上下文中 文本很长 可以很好地换行到第二行 问题是我需要稍微减少行之间的间距 我想减少行高 关于如何做到这一点有什么想法吗 我只想打电话DrawText两次 每行一次 但随后我必
  • Windows 7 SDK安装失败

    我好像完全无法安装Windows 7 SDK http en wikipedia org wiki Microsoft Windows SDK到我的机器上 我在网上找到的唯一解决方案是进行一系列注册表更改 我已经这样做了 仍然没有成功 这是
  • 如何引用所有正在运行的 Excel 应用程序实例(包括隐藏的和没有工作簿的实例)的 COM 对象?

    如何获取每个正在运行的 Excel 应用程序实例的完整引用列表 无论其工作簿数量和可见性状态如何 我知道我可以使用 Windows API 来查找每个 Excel 工作簿窗口 其窗口类名称EXCEL7 让他们的句柄与AccessibleOb
  • 用C#排列桌面图标

    好吧 伙计们 这就是我想要实现的目标 我希望所有无序的桌面图标在单击按钮时都排列在桌面的左上角 这是我正在使用的代码 DllImport user32 dll private static extern IntPtr GetDesktopW
  • Attachconsole的问题

    我需要使 Windows GUI 应用程序可以在控制台中运行 因此当使用命令行调用应用程序时 我将控制台附加到进程 但是 应用程序退出后 除非按 ENTER 键 否则不会显示带有路径的控制台提示符 有什么办法可以不按回车键直接显示路径提示吗
  • 通过从 .BAT 中查找进程正在使用的端口来终止进程

    在 Windows 中 什么可以查找端口 8080 并尝试通过 BAT 文件终止它正在使用的进程 打开命令提示符并运行以下命令 C Users username gt netstat o n a findstr 0 0 3000 TCP 0
  • _CrtDumpMemoryLeaks( ) == 1 在第一行代码上?

    我正在开发一个 MFC Visual C 项目 据我了解MSDN http msdn microsoft com en us library d41t22sb 28v VS 100 29 aspx CrtDumpMemoryLeaks 应该
  • 如何在 C++ 中检查文件是否已被另一个应用程序打开?

    我知道 有is open C 中的函数 但我希望一个程序检查文件是否尚未被另一个应用程序打开 有没有办法使用标准库来做到这一点 编辑 在答案中澄清这是针对 Linux 应用程序的 不仅标准库没有这个功能 一般来说也是不可能的 你可以 在li
  • Python ctypes:SetWindowsHookEx 回调函数从未被调用

    我正在尝试用 Python 编写一个程序 该程序可以识别何时显示警报框 对话框 它正在处理多个监视器 我希望它在任务栏图标闪烁 弹出错误 通知等时在辅助监视器上显示可视化效果 据我所知 检测这些事件的方法是使用消息挂钩 如下所述 http
  • 线程/进程/任务之间有什么区别?

    线程 进程 任务之间有什么区别 Process 进程是正在执行的计算机程序的实例 它包含程序代码及其当前活动 根据操作系统 OS 进程可能由同时执行指令的多个执行线程组成 基于进程的多任务处理使您能够在使用文本编辑器的同时运行 Java 编
  • 如何防止用户杀死C#应用程序[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果您使用 ESET Smart S
  • Direct2D:将 ID2D1Image 转换为 ID2D1Bitmap

    我正在开发一个需要修改屏幕上已有内容的程序 所以我只有一个ID2D1Bitmap我使用创建的pRenderTarget gt CopyFromRenderTarget 我想做的是将效果应用于该位图 效果仅返回ID2D1Image 但我需要有
  • 将 TPopupMenu 与窗体的右侧对齐?

    TPopupMenu 如何与窗体的右侧对齐 问题是 在调用之前似乎没有办法获取弹出菜单的宽度Popup X Y Integer 我正在尝试获得与 Chrome 中的系统菜单类似的行为 你也可以只设置Alignment http docwik
  • 我需要为我的应用程序制作和加载多大尺寸的 ImageList 图标(考虑更高的 DPI)?

    我有一个CListCtrl http msdn microsoft com en us library hfshke78 aspx控制 或ListView http msdn microsoft com en us library wind
  • 编译器不应该对派生类中隐藏的基结构的成员变量发出警告吗?

    我不小心用基结构派生的类中的私有成员隐藏了 基 结构的一些成员变量 结构基 int a 派生类 公共基类 私人的 int a 在我的例子中 这是一个错误 导致了一个偷偷摸摸的错误 幸运的是在测试时发现了 因为我认为故意隐藏成员确实很少见 如
  • switch 在 Visual C++ 中如何编译?它的优化程度和速度如何?

    我发现我只能在 C 中使用数值switch陈述 我认为它和一堆更深层的区别if else s 因此我问自己 如何switch与 不同if elseif elseif在运行速度 编译时优化和一般编译方面 我这里主要说的是MSVC 开关通常被编

随机推荐

  • 帮助解决 System.BadImageFormatException:

    在通过联系本地 Web 服务的 NET 3 5 SP1 项目进行调试时 我收到了异常 System BadImageFormatException 错误的类令牌 当然 关于导致异常的原因并没有更多细节 我可以看出发生这种情况的方法 与调用者
  • 无法应用插件 [id 'forge']

    这是一个延续这个问题 https stackoverflow com questions 58312064 upgrading gradle我的第一个问题已经解决了 但是新的问题又出现了 按照其中提到的教程 解决了一些错误后 现在当我尝试运
  • 没有收到所有 ICMP 超时消息:为什么?

    我正在使用 Scapy 重播一些转储的数据包 其中我更改了 TTL 值 即使 TTL 1 我也得到了非常奇怪的结果 当我分别运行测试时间时 我可以得到大约 40 到 95 的数据包回复了 ICMP 超时消息 然后 我可以递归地重放未应答的数
  • 使用多个列名的 SQLAlchemy 连接语法

    这是我想要执行的以下 sql 查询 并且在命令行上完美运行 select from table1 join table2 using col1 col2 我无法弄清楚如何使用 SQLAlchemy 执行此操作 任何帮助将不胜感激 表之间没有
  • Boost::asio 和 boost::bind:Functor 内存永远不会被释放

    我的代码正在分配内存并且从不释放它 即使它应该 至少在我看来 标题看起来像这样 typedef boost asio ssl stream
  • 在 VideoView 中显示缩略图的问题

    我正在将 VideoView 用于网络视频 并且我还有一个包含相应缩略图的位图对象 现在我应该如何将位图设置为 VideoView 以显示缩略图 我在用着 videoView setBackgroundDrawable new Bitmap
  • OpenMP:不要使用超线程核心(一半“num_threads()”带有超线程)

    In g 4 7 中的 OpenMP 并行 效率不高吗 5x CPU 时为 2 5x https stackoverflow com questions 36950532 is openmp parallel for in g 4 7 no
  • C# 中可以有同名的公共 getter 和私有 setter 吗?

    如何为属性创建公共 getter 和私有 setter 下面的说法正确吗 public String Password set this password value private String Password get return t
  • Mongoose findOne 通过 _id 嵌入文档

    我正在尝试将菜单推送到嵌入文档 但我在餐厅里没有定义 findOne 我只是想将一些文档推送到餐厅的菜单类别中 正如您在架构中看到的 var RestaurantSchema new mongoose Schema contactTelph
  • Python 服务器客户端 WinError 10057

    我正在使用 Python 3 3 制作服务器和客户端socket模块 我的服务器代码工作正常 但此客户端代码返回错误 这是代码 import socket import sys import os sock socket socket so
  • 如何覆盖 GIN 中的绑定

    我找到了 Guice 的答案重写 Guice 中的绑定 https stackoverflow com q 483087 929804但不知道如何在 GWT 中对 GIN 执行同样的操作 提前致谢 据我所知 不支持 回答您的评论 如果您运行
  • 在 json 中存储 pandas 数据帧时保持列和行顺序

    当使用 to json 将数据存储在 json 对象中并使用 read json 读回时 行和列将按字母顺序返回 有没有办法保持结果排序或在检索时重新排序 你可以使用orient split 它将索引和列信息存储在列表中 并保留顺序 In
  • 每个故事显示不同的开放图对象

    好吧 我不确定我在开放图谱中是否做错了什么 但就是这样 我的开放图谱中有 3 个故事 它们是链接到一种对象类型的三个不同操作 Make A Pledge To gt Cause Create gt Cause Log Expense For
  • 在没有 C++ 11 的情况下使用 char16_t、char32_t 等?

    我想要固定宽度类型 包括字符类型
  • 软键盘打开时调整布局

    我在某些应用程序中看到 当显示软键盘时布局会发生变化 这当然不是adjustPan因为整个布局 可能是内部布局 发生了变化 而不仅仅是当前的EditText 例如 这是在 Evernote 登录屏幕中 你能建议一下这是怎么做的吗 下面是一个
  • 如何获取 Webview iframe 链接来启动浏览器?

    我正在使用 WebView 来显示一个页面 其中 html 包含一个 iframe 其中 src xxxxx php 该 iframe 作为带有底层链接的广告图像加载 如果我单击该图像 链接 它会尝试在原始 iframe 中加载新页面 在那
  • 为什么建议将实例变量声明为私有?

    我的问题与Java有关 但它也可以应用于C 我想知道为什么每个人都建议创建实例变量private而不是制作它们受保护的 我们想一想 子类看不到私有变量 因此如果我需要访问或更改子类中超类的变量 我被迫使用一些访问器和修改器方法 例如getM
  • 将 Windows Phone 7 应用程序中的图像文件上传到 PHP

    我正在尝试从图片库 在 WP7 上 上传图片并将其保存在服务器上的文件夹中 在服务器上 我使用 PHP 通过 POST 方法接收文件 PHP 代码是
  • 在 fortran 中生成序列数组

    Fortran中是否有一个内在函数可以生成一个包含从a到b的数字序列的数组 类似于python的range gt gt gt range 1 5 1 2 3 4 gt gt gt range 6 10 6 7 8 9 不 没有 但是 您可以
  • 获取完整的正在运行的进程列表(Visual C++)

    我目前正在使用 EnumProcesses 函数来获取正在运行的进程的列表 然而 由于我的应用程序在用户空间中运行 因此它无法获取不在用户下运行的进程 包括系统进程 的句柄 是否有其他方法可以让我访问这些内容 我所需要的只是进程名称 只是为