gpt4 book ai didi

ruby - Win32 - 可以枚举属于调用线程的窗口吗?

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:41 25 4
gpt4 key购买 nike

来自 MSDN 上的 GetActiveWindow“检索附加到调用线程的消息队列的事件窗口的窗口句柄。”

我正在使用其 Ruby API 编写 SketchUp 插件。目前正在尝试通过 Win32 对某些窗口进行一些调整。从 Ruby API 中,我对 SU 的窗口和线程的信息非常有限。只要 SketchUp 窗口具有焦点,GetActiveWindow 就可以正常工作 - 但否则会失败。

所以我正在寻找一种安全的方法来获取 SketchUp 窗口的句柄,无论它是否具有焦点。

看到 GetActiveWindow 如何能够为调用进程获取事件窗口,我想知道是否可以枚举属于调用进程的窗口。然后我可以浏览结果并找到我的窗口。

或者,获取调用线程的进程 ID,这样我就可以枚举所有窗口并挑选出属于我的脚本运行所在线程的窗口。

有什么想法吗?

最佳答案

您可以使用 EnumWindows找到所有顶级窗口。在 ruby 中,win32-api支持传入适当的回调。

编辑:然后您可以使用 GetWindowThreadProcessId以确定每个窗口属于哪个进程。

编辑:要确定运行脚本的进程的进程 ID,请使用 GetCurrentProcessId .

关于ruby - Win32 - 可以枚举属于调用线程的窗口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548354/

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