C# WinAPI 从静态检查窗口文本

Posted

技术标签:

【中文标题】C# WinAPI 从静态检查窗口文本【英文标题】:C# WinAPI Check for Window Text from Static 【发布时间】:2014-08-13 06:09:04 【问题描述】:

我正在尝试确定类名称为“静态”、包含“扫描完成”的窗口是否。通过 .NET/C#。

具体来说,我已自动使用 RogueKiller,并希望检测“扫描”何时完成。

我尝试了许多 PInvoke 方法,但我找不到任何可以让我执行(伪)Caption.Contains("Scan finished"); 的方法。

任何帮助都会很棒!

窗口结构的工作原理:

父母(RogueKiller™...等) Windows - 类别:静态,标题: 扫描完成。请查看不同的标签并使用按钮删除项目

我需要检测“扫描完成”。

【问题讨论】:

您尝试了哪些 PInvoke 方法? GetClassName、GetChild 和 GetDesktop 组合不起作用? 我尝试了 EnumWindows 等。我试图找到一个子窗口,我可以用确切的标题专门找到它,但标题可能会有所不同,所以我需要检查它是否“包含”文本。 所有窗口都是桌面的子窗口(GetDesktop 和 GetWindow(当我说 GetChild 时))。您可以使用 GetClassName 确定类名。 GetWindowText 获取文本。 我需要一个进程的子窗口,并检测它的标题。查看更新的问题。 这正是 UI 自动化设计的目的。您想在子元素的 Name 更改时触发,然后将 Name 与您想要的字符串进行比较。 【参考方案1】:

我想你想在你的回调中调用EnumWindows 和GetWindowText。我犹豫复制/粘贴另一个 *** 答案。所以详细例子见How can I use EnumWindows to find windows with a specific caption/title?

【讨论】:

你能给我一个工作的例子吗(伪好的)?我不知道该怎么做....

以上是关于C# WinAPI 从静态检查窗口文本的主要内容,如果未能解决你的问题,请参考以下文章

C#、C++、WinAPI - 从另一个进程获取窗口数

C#。 WinApi。在窗口上绘制

如何预先测量静态尺寸? WINAPI

使用 WinAPI 创建具有透明背景的文本标签

winapi查找网页对话框的子窗口标题(属性)

WinApi:如何为屏幕阅读器的自绘按钮添加替代文本?