通过镜像名称获取进程的进程句柄

2023-11-30

我需要使用 Win32 从 C 中最简单的方法通过可执行文件名获取另一个进程的进程句柄。

我正在寻找的进程没有任何已注册的窗口类。我还知道,如果它正在运行,则只会有一个实例在运行。


Use 创建Toolhelp32Snapshot, 进程32优先, and 流程32下一个枚举所有进程。

在 - 的里面流程输入32你可以找到一个szExeFile成员。 您可以通过调用获取进程句柄开放进程与进程 IDth32ProcessID在同一结构内。

一旦找到与您的 exe 名称匹配的进程,您就可以跳出循环并获取句柄。

注意:如果您需要枚举每个进程,无论会话是什么,您应该获得 SE_DEBUG 权限。

在你的主要调用的顶部:

acquirePrivilegeByName(SE_DEBUG_NAME);// SeDebugPrivilege

这是定义acquirePrivilegeByName:

BOOL acquirePrivilegeByName(
                            const TCHAR     *szPrivilegeName)
{
    HANDLE          htoken;
    TOKEN_PRIVILEGES    tkp;
    DWORD           dwerr;

    if (szPrivilegeName == NULL)
    {
        SetLastError(ERROR_INVALID_PARAMETER);
        return FALSE;
    }

    if (!LookupPrivilegeValue(NULL, szPrivilegeName, &(tkp.Privileges[0].Luid)))
        return FALSE;

    tkp.PrivilegeCount = 1;
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

    if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &htoken))
        return FALSE;

    if (!AdjustTokenPrivileges(htoken, FALSE, &tkp, 0, NULL, NULL) ||
        GetLastError() != ERROR_SUCCESS)    // may equal ERROR_NOT_ALL_ASSIGNED
    {
        dwerr = GetLastError();
        CloseHandle(htoken);
        SetLastError(dwerr);
        return FALSE;
    }

    CloseHandle(htoken);
    SetLastError(ERROR_SUCCESS);

    return TRUE;
} //acquirePrivilegeByName()

除了我上面说的之外,还有一个关于如何使用上面的Win32 API的示例here.

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

通过镜像名称获取进程的进程句柄 的相关文章

  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • IronPython:没有名为 json 的模块

    我安装了 IronPython 我的 python 文件如下所示 import sys print sys version import json 运行它的代码 var p Python CreateEngine var scope p C
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 在 C 中使用 GNU automake 中的解析器

    我是 GNU autotools 的新手 在我的项目中使用了 lex 和 yacc 解析器 将它们作为 makefile am 中的源代码会产生以下错误 配置 in AC CHECK PROGS YACC bison yacc none i
  • System.Runtime.InteropServices.COMException(0x80040154):[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 C 项目中遇到异常 System Runtime InteropServices COMException 0x80040154 检
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 当前的 x86 架构是否支持非临时加载(来自“正常”内存)?

    我知道有关此主题的多个问题 但是 我没有看到任何明确的答案或任何基准测量 因此 我创建了一个处理两个整数数组的简单程序 第一个数组a非常大 64 MB 第二个数组b很小 无法放入 L1 缓存 程序迭代a并将其元素添加到相应的元素中b在模块化
  • strcmp 给出分段错误[重复]

    这个问题在这里已经有答案了 这是我的代码给出分段错误 include
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 双精度类型二维多维数组的 pinvoke 编组作为 c# 和 c++ 之间的输入和输出

    我有以下我正在尝试解决的双物质类型的 2d 多维数组的 c 和 c pinvoke 编组 我已经查看了以下热门内容以获得我目前拥有的内容使用双精度数组进行 P Invoke 在 C 和 C 之间编组数据 https stackoverflo
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 如何使用 json 库解析嵌套的 JSON 对象?

    我想使用 json 库解析 json 对象 batters batter id 1001 type Regular id 1002 type Chocolate id 1003 type Blueberry id 1004 type Dev
  • 有没有办法在 R 图中对齐 2 个独立轴?

    我正在绘制具有不同轴的图表 问题是我希望两个轴交叉一个点 其余的并不重要 是否可以 这是一个可重现的代码 plot x 10 10 y 10 10 abline v 0 lty 2 par new TRUE plot x 10 50 y s
  • 无法运行从 Scala 文件创建的 jar 文件

    这是我用 Scala 编写的代码 object Main extends App println Hello World from Scala 这是我的构建 sbt name hello world version 1 0 scalaVer
  • VB.NET 中通过后期绑定实现的多态性不允许使用事件,有解决方法吗?

    我正在开发一个与一系列 USB 传感器通信的应用程序 我创建了一个使用名为 Sensor 的类的基本实现 该类包含允许与传感器交互的事件和方法 还涉及一个线程任务处理器 但我将举一个简单的示例 我的问题是 这个简单的概念验证示例运行良好 但
  • 在 Android 手机中启动图库

    当用户单击通知时 我试图从我的应用程序启动图库 我发现只有当您知道 Gallery 应用程序的包和类名时才有可能 我已经成功地为四家设备制造商找到了相同的内容 到目前为止 该代码有效 我只需要 Motorola 和 LG Android 手
  • 需要帮助在 tomcat 中调试 SSL 握手

    我有一个非常奇怪的问题并正在寻找一些提示 我有一个由客户端发送的证书 我需要安装该证书才能访问 HTTPS Web 服务 Windows 和 Linux 操作系统中均已安装证书 使用 keytool 命令 keytool import al
  • EDMX .NET 4.5 到 4.0?

    我们使用实体框架 并在项目设置为构建 NET 4 5 时创建了 EDMX 现在我们想要切换到 NET 4 0 但是当我们这样做时 我们会收到 EDMX 文件的编译错误 它指出以下错误 Error 10027 The XML namespac
  • 使用 itext (itextsharp) 替换一个 PDF 模板页面上的多个不同图像

    我们有一个 ASP NET 应用程序 用户可以用它来生成某些报告 到目前为止 我们有一个 PDF 模板 上面有一张图像 我们只需用我们以编程方式生成的图像 图表 替换该图像 我们使用了该网站的代码 http blog rubypdf com
  • Ansible playbook 检查用户是否存在或显示错误消息

    如何检查用户是否存在以及 如果存在 则继续下一个任务 如果不存在 则显示一条消息 Given user does not exist 您可以简单地使用获取模块 name get root user info getent database
  • F# 性能问题:编译器在做什么?

    参考这段代码 F 静态成员类型约束 为什么 例如 let gL G of 1L 1L 100000L gt List map fun n gt factorize gL n 明显慢于 1L 100000L gt List map fun n
  • 扩展样式表块

    我在基本布局中有样式表块 stylesheets filter cssrewrite bundles static css main css endstylesheets 我想知道是否可以在子模板中扩展此块 添加另一个或多个 CSS 链接
  • MeekroDB 错误“命令不同步;您现在无法运行此命令”

    我有一个包含以下几行的 PHP 脚本 require once meekrodb 2 1 class php DB user usr DB password pwd DB dbName db DB encoding utf8 results
  • 确定 CSV 的数据类型 - Python

    我是 Python 新手 在使用列表时遇到问题 我公开了我的问题 如您所见 我有一个具有以下结构的 datos csv 文件 1 4 0 none 2 2 0 3 0 none 2 2 5 2 5 tc 39 使用此函数我将数据存储在列表中
  • 是否可以声明带有属性的匿名非 IIFE JavaScript 函数

    我有一次发现 在将属性作为参数传递给其他函数之前 将属性分配给函数很有用 看起来像这样 对于匿名函数和变量分配函数对象之间的任何混淆 我感到抱歉 我认为它们不是同一件事 could strict mode have something to
  • 查找与 matlab 中向量的阶数相同的向量的唯一值

    我有一个向量 A 2 5 6 2 4 13 34 3 34 我想找到这个向量的唯一值 但不是按排序顺序 我在Matlab网站上搜索 发现了这个函数 C ia ic unique A rows stable 但是Matlab R2011a不识
  • 文件名上的 Posix I/O 操作顺序一致吗?

    我想知道是否有Posix标准保证对文件的修改通过重复保证是可见的open close调用相同的文件名 为了便于说明 请考虑以下 Bash 脚本 bin bash FILE mktemp echo Some data gt gt FILE c
  • 使用 Google Drive SDK iOS 创建文件夹

    我正在尝试使用适用于 iOS 的 Google Drive SDK 创建一个文件夹 来自此处的 Google 云端硬盘文档 https developers google com drive folder 它说创建文件夹就像创建具有特殊 M
  • 如何在 R 中重新排列图表

    我更新了我的diagrammer到版本 0 9 0 并开始从相同的数据渲染不同的图表 我的数据框现在看起来像这样 df lt data frame col1 c Cat Dog Bird col2 c Feline Canis Avis s
  • 如何免费制作 Xbox Live 独立游戏?

    有没有办法制作免费的 Xbox Live 独立游戏 现在我并不是想在市场上向全世界发布它 而是想在我的 Xbox 上免费测试它 我知道您必须在 Xbox 和 PC 上下载 XNA 应用程序 但我是否需要 XNA Creators Club
  • 通过镜像名称获取进程的进程句柄

    我需要使用 Win32 从 C 中最简单的方法通过可执行文件名获取另一个进程的进程句柄 我正在寻找的进程没有任何已注册的窗口类 我还知道 如果它正在运行 则只会有一个实例在运行 Use 创建Toolhelp32Snapshot 进程32优先