如何从进程开始捕获所有应用程序/窗口消息? [关闭]

2024-05-21

我试图弄清楚如何捕获进程/窗口的所有窗口消息,从它在 c# 中启动时开始。该过程不是我自己的,所以我需要使用某种钩子。我的目标是开始实时捕获从初始窗口创建之前到应用程序退出并将所有消息输出到文本框或文件的所有消息。所以基本上从执行应用程序的那一刻起。

因为我想从它启动时捕获它,所以我可能不会有窗口句柄,因为它们还没有句柄。所以我猜这可能很棘手。

他们的应用程序可以执行此操作供我参考吗?我只想要来自应用程序的所有消息。


我的目标是开始实时捕获之前的所有消息 初始窗口创建,到应用程序退出并输出所有 发送到文本框或文件的消息。

听起来您想要“实时”监控注册表、文件系统、进程等活动。

过程监控器 http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx这一切都已经完成了,你可以使用它来连接它EasyHook http://www.codeproject.com/Articles/27637/EasyHook-The-reinvention-of-Windows-API-hooking

因为我想从它启动时捕获它,所以我可能不会有窗口句柄,因为它们还没有句柄。所以我猜这可能很棘手。

这篇代码项目文章提供了一种方法,可以防止执行未出现在允许在特定计算机上运行的软件列表中的任何程序。也许您可以对其进行调整以满足您的需求。http://www.codeproject.com/Articles/11985/Hooking-the-native-API-and-controlling-process-cre http://www.codeproject.com/Articles/11985/Hooking-the-native-API-and-controlling-process-cre

如果您想要低级方法,我建议您阅读挂钩和 Dll http://www.codeproject.com/Articles/1037/Hooks-and-DLLs.

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

如何从进程开始捕获所有应用程序/窗口消息? [关闭] 的相关文章

  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 共享辅助轴

    如何使用 matplotlib 中的子图设置共享辅助轴 这是显示问题的最少代码 import numpy as np import matplotlib as mpl import matplotlib pyplot as plt def
  • 如何将包含大量表格的 HTML 文档转换为 Word 文档?

    我创建了一个包含许多表格的 HTML 文档 如何将文档转换为Word 问题是 如果我用 Word 打开 HTML 文档 由于某种原因我会得到非标准的双行表格 table border 1 color 000000 cellpadding 0
  • 由于缺少 PHP 扩展,CakePHP 3 无法连接到数据库

    我正在尝试使用 WT NMP 安装 cakePHP 3 0 0 但收到以下消息 CakePHP 无法连接到数据库 由于以下原因无法使用数据库驱动程序 Cake Database Driver Mysql 缺少 PHP 扩展或未满足的依赖项
  • 如何让 Vim 突出显示非 ascii 字符?

    我试图让 Vim 突出显示非 ASCII 字符 是否有可用的设置 正则表达式搜索模式或插件来执行此操作 在 a 中使用范围 搜索中的字符类 您应该能够excludeASCII 十六进制字符范围 因此突出显示 假设您有hlsearch启用 所
  • 依赖解析算法

    我正在编写一个包管理器 为此我希望依赖项解析尽可能强大 每个包都有一个版本列表 每个版本包含以下信息 具有可比性的 ID 依赖关系 软件包列表以及每个软件包的一组可接受的版本 冲突 软件包列表以及每个软件包的一组与该版本一起导致问题的版本
  • 查看寻呼机 - 使用静态变量以编程方式滑动到下一页

    我想在我的 ViewPager 中以编程方式制作幻灯片 我的问题是 滑动事件是由放置在 ViewPager 保存的片段内部的按钮调用的 我知道代码 viewpager setCurrentItem int index 现在我的想法是使 Vi
  • 将用户定义的表类型从 VBA 传递到 SQL

    我的任务是创建一个 Excel 电子表格作为 SQL 数据库的前端 以及一些对数据执行复杂计算的 C 我的老板想要前端作为电子表格 而计算对于 VBA 来说似乎太复杂了 目前 检索数据集的存储过程运行良好 然后 用户将在 Excel 中编辑
  • Lua中有状态迭代器和无状态迭代器的区别

    Lua中无状态和有状态迭代器有什么区别 请详细解释一下 什么时候需要使用无状态 什么时候需要使用另一种 我需要例子来理解这个概念 首先让我们就一个定义达成一致 在 Lua 中 迭代器是function 类似对象 每次调用时都会返回序列中的下
  • ListView 中的错误:InvalidArgument = 值“0”对于“index”无效

    当我第二次选择 ListView 中的某个项目时 会出现此错误 我尝试调试它 当我第二次选择某个项目时 list answers SelectedItems Count是0 为什么呢 这是我的代码 private void list ans
  • 如何使用 jquery ajax 将锚点的值发送到 php

    我正在尝试使用 jquery 将几个锚点的值发送到 php 文件 但我没有从 php 脚本中得到回调 div class result div a href value class star Star 5 a a href value cl
  • 模板函数静态变量

    我有一个模板函数可以根据typename传递给它 就像这样 template
  • 理解基本递归

    public static void main String args System out println factorial 5 public int factorial int n if n lt 1 return 1 else re
  • 如何使用 php imap 将邮件消息移动到文件夹

    我似乎无法将邮件移至已保存的文件夹 这是我的代码 mbox imap open mail server mail port mail folder mail username mail password or die Error openi
  • 函数式 Scala 中的选择排序

    我正在学习 Scala 编程 并编写了选择排序算法的快速实现 然而 由于我对函数式编程还不太了解 所以在转换为更 Scala 风格时遇到了困难 对于 Scala 程序员来说 如何使用 Lists 和 vals 来做到这一点 而不是回到我的命
  • 重定向而不是 404 错误页面 - 状态代码不起作用 (Nginx)

    我目前正在迁移到 nginx 服务器 我尝试将其放入名为的 404 ErrorDocument 中404 php 如果我现在尝试访问http mydomain com 404 php 这按预期工作 它将我重定向到 Google 但是一旦我尝
  • 监听来自动态vue组件的事件

    您将如何侦听动态创建的组件实例发出的事件 在示例中 顶部组件添加到 DOM 中 而第二个组件是在 javascript 中动态创建的 Vue component button counter data function return cou
  • C# 中将字符串 (yyyyMMddhhmm) 转换为 DateTime 的函数

    在我的数据库中 我有一个日期类型的字段varchar其中日期以以下格式存储yyyyMMddhhmm 没有空格或其他字符分隔它们 现在我需要将此日期与 C 进行比较DateTime 因此我需要将字符串转换为DateTime 我能想到的最合乎逻
  • net.sf.jasperreports.engine.JRException:从 bean 检索字段值时出错:First_name

    我想使用 Jasper Reports 创建 CSV 有很多相关的问题 但没有任何对我有用 下面是我的 Bean 类 public class DataBean public String First name public String
  • Perl 程序如何知道在哪里可以找到包含它使用的 Perl 模块的文件?

    如果我的 Perl 程序使用 Perl 模块 它将如何确定在哪里找到包含模块代码的文件 例如 如果程序包含 use MyModule1 Example 1 use This Here MyModule2 Example 2 它会看起来在哪里
  • 如何从进程开始捕获所有应用程序/窗口消息? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图弄清楚如何捕获进程 窗口的所有窗口消息 从它在 c 中启动时开始 该过程不是我自己的 所以我需要使用某种钩子 我的目标是开始实时