gpt4 book ai didi

Golang如何在顶部设置窗口

转载 作者:行者123 更新时间:2023-12-05 06:37:46 24 4
gpt4 key购买 nike

我正在开发一个应用程序,可以将可移植浏览器打开到特定页面。问题是,每隔一段时间我就想将焦点切换到浏览器窗口,以便在最小化或顶部有窗口时它会出现在屏幕顶部。

我尝试使用 robotgo 来做到这一点,通过将事件 PID 设置为我浏览器的 PID 并将其设置为事件,但这不起作用:

robotgo.ActivePID(26360)
handle := robotgo.GetHandle()
fmt.Println("handle: %s", handle)

mdata := robotgo.GetActive()

robotgo.SetActive(mdata)

有办法吗?

注意:因为我自己使用 exec.Command 打开这个浏览器进程,所以我有它的 PID,所以我不必搜索它。

注意 2:我在 Windows 上运行这个程序。

最佳答案

问题很老,但我遇到了完全相同的问题,我为它做了一个小包。

您可以在这里找到它:https://github.com/audrenbdb/goforeground

跨平台linux/windows;我还没有在 Darwin 上实现它。

有关其工作原理的总结:您枚举所有事件窗口并检查 PID 是否匹配,一旦找到合适的窗口,就将其设置为前台。

在 Linux 上,它使用 X11(主要);在 Windows win32 api 上。现在 window 的技巧是一个 PID 可能与多个窗口相关。所以我们需要检查另外两件事:窗口是否处于事件状态,并且窗口是否拥有(参见此处的讨论:How to get main window handle from process id?)。

关于Golang如何在顶部设置窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47189825/

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