【问题标题】:How to use ControlGetText Command in Autohotkey?如何在 Autohotkey 中使用 ControlGetText 命令?
【发布时间】:2015-10-11 18:26:42
【问题描述】:

我使用 MS Excel 表进行测试,但它无法正常工作。我的脚本是这样的:

F1::
ControlGetText, OutputVar, Edit1, ahk_class XLMAIN
Return
F2::
Send %OutputVar%
Return

所以当我按下热键 F1 时,脚本应该检索编辑框的文本,当我按下热键 F2 时它应该发送该文本,但按下这些键时它什么也不做。

如您在此快照中所见:

(所有控件ID仅用于测试目的)

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    您使用正确。

    有很多控件不允许您直接检索文本。

    在这种情况下的问题是 Excel 停止尊重其 WinAPI 来源并且不将文本存储在控件中。连接到正在运行的 Excel 应用程序并使用其自动化界面:

    F1::address := ComObjActive("Excel.Application").ActiveCell.Address(0,0)
    F2::send %address%
    

    对于 SysTreeView32 控件,您可以尝试low level SendMessage method

    【讨论】:

    • 感谢@wOxxOm 的回复。但我想通过使用 controlgettext 命令从任何应用程序中检索任何值。你能告诉我如何在目前的情况下使用它吗?您建议使用 com 对象模块。但它仅适用于 excel 应用程序。如果正在使用任何其他应用程序或软件,并且我想从该应用程序或软件中检索任何值,而不是我将做的 com 对象在那里不起作用。所以请告诉我如何使用 controlgettext comman。非常感谢
    • 您使用正确。问题是 Excel 停止尊重其 WinAPI 来源,并且不将文本存储在控件中。
    • 感谢@wOxxOm 的好建议。我还想提醒您一件事 - 正如您在以下快照中看到的那样。 i.imgur.com/ZRM21bl.png 这个命令即使在这里也不起作用。我不知道我在犯什么错误。参考快照图像,我正在使用这些代码检索图像中红框区域的文本- f1:: ControlGetText、OutputVar、SysTreeView321、CD-ROM 上的柯林斯 COBUILD - Lexicon return f2:: send %OutputVar% return 请帮助我。谢谢
    • 有很多控件不允许您直接检索文本。至于SysTreeView32控件可以试试low level SendMessage method
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    相关资源
    最近更新 更多