窗口句柄中的 .net 类名

2024-02-18

我正在开发一个应用程序来监视 Windows 计算机上运行的内容。如果在自动化过程中弹出某些对话框,它将用于发出警报。我正在使用 Windows API 来获取现有窗口的类名,效果很好。但是,如果这些是 .NET 应用程序,那么我得到的不是 .NET 类名,而是类似“WindowsForms10.Window.8.app.0.39cfeeb”的内容,更糟糕的是,类名在执行之间不是恒定的。

有没有办法在仅提供 Windows 句柄时获取 .NET 类名?


是的,这是行不通的。桌面会话中的每个唯一窗口都必须有一个唯一的 Windows“类名”,该字符串传递给 RegisterClassEx() winapi 函数并在 CreateWindowEx() 中使用。 Winforms 自动生成这些名称,因此它有责任确保它生成的名称不会与其他进程和应用程序域中的窗口名称发生冲突。这就是为什么您会看到这些奇怪的名称,最重要的部分是最后一位,在您的示例中为 39cfeeb,即 AppDomain.GetHashCode() 返回的值。您无法从外部进程检索该哈希代码。

您将需要一种根本不同的方法,该方法不依赖于容易获得的类名。看着那(这托管间谍代码 http://msdn.microsoft.com/en-us/magazine/cc163617.aspx,它支持在外部 Winforms 进程上使用 Reflection。隔离它使用的 DLL 注入代码技术以便您可以在自己的代码中使用它需要一些工作。

这也是您从进程中获取 .NET 类名的唯一方法,否则您在使用 UI 自动化时永远不会真正关心这一点。

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

窗口句柄中的 .net 类名 的相关文章

  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么C++代码执行速度比java慢?

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

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

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

随机推荐

  • Qt 5.3。 QtWidgets:没有这样的文件或目录#include

    我想编译 Qt 示例 我收到错误 QtWidgets 没有这样的文件或目录 include greaterThan QT MAJOR VERSION 4 QT widgets does not help QT widgets does no
  • 我什么时候应该使用 Android Jetpack Compose 的 Surface 可组合项?

    有一个Surface https developer android com reference kotlin androidx compose material package summary surfaceJetpack Compose
  • jQuery.active 函数

    我试图找到有关以下 jQuery 函数的更多信息 jQuery active 它被描述为测试与服务器的活动连接数 并且当连接数为零时评估为 true 我在 jQuery 网站上找不到有关此功能的任何信息 并且想知道是否有人知道我可以在哪里找
  • 如何使用索引查找所有大于的值

    我一直在这个网站和其他网站上研究我的情况 这是最接近我的问题 解决方案的 查找大于或等于某个值的所有值 https stackoverflow com questions 23941500 find all values greater o
  • Pascal中字符串到整数的转换,怎么做?

    如何将字符串中打印的数字转换为整数 谢谢 程序 Val procedure Val S var V var Code Integer 此过程对小数和实数进行操作 参数 S 字符序列 为了正确转换 它必须包含 0 9 V 转换结果 如果结果是
  • 使用 CSS -fx-shape 绘制区域。怎么可能呢?

    我正在寻找一种在区域中绘制形状的方法 JavaFX8 我见过一些设置区域样式的示例 如下所示 fx shape M 3 0313 0 L 0 74 L 7 9688 74 L 4 9375 0 L 3 0313 0 Z 谁能解释一下这个字符
  • 如何在 Firefox 中清除 Service Worker 缓存?

    在 Chrome 中 可以从开发工具中清除 Service Worker 缓存 我们如何在 Firefox 中实现这一目标 到目前为止我已经尝试过 取消注册服务about serviceworkers 清空下面的缓存about prefer
  • Maven - 覆盖测试资源文件夹

    我在 Maven 和 Eclipse 中进行测试时遇到问题 我从 Eclipse 运行我的测试套件 一切正常 但是当我运行时 mvn test 我有一个例外 当我尝试读取测试用例中的一些文件时 它会出现 如下所示 final File ja
  • 无后端的 PWA 通知

    我正在使用 Javascript PWA 制作一个待办事项应用程序 待办事项会有提醒 我想向用户发送通知以提醒他们 任务和提醒时间将存储在localStorage中 所以现在我想在没有任何后端的情况下发送通知 我尝试过一些教程 它们都需要后
  • 为什么在 recyclerview android 中滚动后突出显示的项目会丢失

    我想在适配器类中的操作模式处于活动状态时突出显示该项目 我可以这样做 但滚动后突出显示状态消失了 我尝试了各种解决方案 但我不知道为什么会发生这种情况 public class MyAdapter extends RecyclerView
  • SQL:级联UNION和JOIN

    我在两个表之间进行联合操作 SELECT ID 1 name 1 surname 1 FROM T ONE UNION SELECT ID 2 name 2 surname 2 FROM TABLE 2 我想加入这个结果UNION与另一个表
  • 为什么我构建flutter web时会出现白屏

    我想构建一个 flutter web 应用程序 所以我输入 webdev build 命令 操作完成后 我打开位于构建目录中的 index html 文件 它只是一个白屏 我在一个新项目上尝试过 问题仍然存在 开发过程中没有问题 这是我的
  • PHP post_max_size 与 upload_max_filesize 有什么区别?

    当尝试上传PDF通过为此创建的管理区域创建的 15mb 文件 没有任何反应 没有成功或错误消息 但PDF没有上传 然后我认为这可能是一个问题php ini设置 果然 当我查看文件时 发现限制被设置为8m 我假设这意味着 8mb 帖子最大大小
  • Rails 3.1rc4 defaults.js 未找到

    我有一个全新的 Rails 3 1rc4 项目 生成脚手架 迁移并创建新条目后 我注意到我无法销毁刚刚创建的条目 结果发现 assets defaults js 找不到 所以没有弹出销毁确认对话框 我认为这可能与新的资产管道有关 但寻找解决
  • UINavigationBar 左侧有两个按钮

    我知道在 stackoverflow 上有很多类似的问题 但我的有点不同 我将用图像来展示这一点 因为它更容易理解 使用我从中获取的代码here http www mattdipasquale com blog 2010 11 02 how
  • 用户表单多页禁用选项卡单击

    我有一个带有多页选项卡的用户窗体 每个选项卡内都有一个 下一个 命令按钮 如果没有错误 您可以使用该按钮移动到下一个选项卡 如果有错误 它会提示用户并将焦点设置为该选项卡上出现错误 当用户窗体打开时 我可以单击选项卡来跳转 而无需完成任何违
  • django.template.library.InvalidTemplateLibrary:指定的模板库无效

    我正在尝试构建一个博客应用程序 运行 makemigrations 和 migrate 并创建超级用户 但我在运行服务器时遇到以下错误 django template library InvalidTemplateLibrary 指定的模板
  • 枚举变体可以具有恒定的关联值吗? [复制]

    这个问题在这里已经有答案了 我有代码 use std collections HashMap We have some arbitrary struct given values just placeholders struct SomeS
  • 如何使用基本身份验证设置 标签

    我想在我的网页上显示来自网络摄像机的图像 但该图像位于 HTTP 基本身份验证服务器后面 在 Firefox 和 Chrome 中我可以这样做 img width 320 height 200 src 但在 Internet Explore
  • 窗口句柄中的 .net 类名

    我正在开发一个应用程序来监视 Windows 计算机上运行的内容 如果在自动化过程中弹出某些对话框 它将用于发出警报 我正在使用 Windows API 来获取现有窗口的类名 效果很好 但是 如果这些是 NET 应用程序 那么我得到的不是