gpt4 book ai didi

autohotkey - 如何从窗口获取文本内容

转载 作者:行者123 更新时间:2023-12-02 01:59:18 28 4
gpt4 key购买 nike

我有一个显示一本书的窗口。在下面两个较小的框中,有打开的书的页码和卷数信息。我可以通过以下方式轻松获取该信息:

ControlGetText, volume, ThunderRT6TextBox3      
ControlGetText, page, ThunderRT6TextBox2

然后我的脚本让我的鼠标指针移动到一个按钮上。它单击它,并弹出一个新窗口。在该窗口中,有更多与该书相关的文本信息,例如出版商、作者姓名、版本等。我想检索该信息。但是当我尝试相同的策略时它不起作用,例如:
ControlGetText, data, RichTextWndClass3
这两种情况的唯一区别是,那两个小框是可编辑的,您可以输入文本,而此窗口是静态的。

我尝试了许多其他选项,例如: SendEvent ^a这相当于 control + a,它应该选择所有内容。我尝试暂停,但它永远不会选择。我尝试使用脚本手动双击该窗口。它起作用了,一个词就这样被选中了。即使这样 SendEvent ^a 也不做任何事情。
但是,如果我执行 SendEvent ^{insert},则所选单词将被复制到剪贴板。

我尝试了更多的组合:
ControlSend ahk_class ThunderRT6FormDC, ^a
ControlSend ClassNN RichTextWndClass3, ^a


ControlSend ThunderRT6FormDC, ^a
ControlSend RichTextWndClass3, ^a

他们都没有工作。所有文本选择都不会在该窗口中显示出来。

剩下的唯一选择是让脚本手动选择整个文本。然而,这很慢而且非常荒谬。此外,在 Window Spy 部分下:Visible Window Text,文本全部在那里。我尝试了许多其他的可能性,但我已经无能为力了。我如何直接收获该文本?

编辑 -
窗口文本显示在 Window Spy 标题下:TitleMatchMode=slow Visible Text,而不是标题:Visible Window Text

编辑 -
我和你谈过两个窗口。我在其中获得卷和页码的第一个。第二个需要通过按下按钮弹出。
这两个窗口具有相同的类名:
ahk_class ThunderRT6MDIForm
这有什么问题吗?

编辑 -
结论是我不可能直接从第二个窗口中获取该文本。因此,我选择了蹩脚、无聊的手动方法。我向事件窗口发送一个 {shift down},然后点击窗口底部。然后我将选择保存到剪贴板。它有效,但它只是愚蠢。请帮我找到一个比这个更优雅的解决方案。

这是我使用的代码:
ControlGetText, volume, ThunderRT6TextBox3 

ControlGetText, page, ThunderRT6TextBox2

Click, 110, 70

sleep 1000

SendInput {shift down}

click 29, 490

SendInput {shift up}

sleep 1000

SendInput, ^{ins}

sleep 100

有趣的是,真正的键盘键,例如 a b c 是不可能的。但是我可以发送 ctrl、shift 和 ins。正如我上面提到的,^c 也有问题,就像 ^a 有问题一样。

最佳答案

有一个模拟大多数窗口 spy 逻辑的自动热键脚本。它被称为 AHK_Window_Info_v1.7.ahk。好消息是……您可以运行它以查看您的第二个窗口文本是否对这个脚本可见,如果是,那么……提取信息所需的逻辑在脚本中可用。这是该网页的链接,该脚本可通过该页面上的 SKAN 保​​管箱链接获得。 http://www.autohotkey.com/board/topic/8204-ahk-window-info-17/

关于autohotkey - 如何从窗口获取文本内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052879/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com