gpt4 book ai didi

AutoHotkey:列出所有打开的窗口

转载 作者:行者123 更新时间:2023-12-02 00:53:31 25 4
gpt4 key购买 nike

WinGet, OutputVar, List可以获得所有未隐藏窗口的列表。它显示的方式比用户在 Windows 任务栏上看到的要多。

如何将窗口编号限制为任务栏上显示的编号。就像任务管理器中的简单列表一样。 (较少细节模式)

最佳答案

这是一种简单的方法,我不确定它有多可靠。
它通过尝试最小化窗口来工作,如果它被最小化,则意味着它在任务栏上可用。
您可以以您需要的任何形式获取已找到/事件窗口的列表,这里我使用数组。

getWindows:

activeWindowsId := []
activeWindowsExe := []
newlist := ""

WinGet, List, List ;get the list of all windows

Sendinput, #m ;mimimize all windows by using the windows shortcut win+m
sleep, 200

;Loop % List ;or use this loop to minimze the windows
;{
; WinMinimize, % "ahk_id " List%A_Index%
;}

Loop % List
{
WinGet, theExe, ProcessName, % "ahk_id " List%A_Index% ;get the name of the exe
WinGet, windowState, MinMax, % "ahk_id " List%A_Index% ;get the state of the window, -1 is minimized, 1 is maximized, 0 is neither

if (windowState == -1) ;if the window is minimized
{
activeWindowsId.push(List%A_Index%) ;add the window id (hwnd) to this array
activeWindowsExe.push(theExe) ;add the window exe to this array
WinRestore, % "ahk_id " List%A_Index% ;restore the window
}
}

;read the found active windows list from the array to a string and show it with a msgbox
For index, exe in activeWindowsExe
{
newList .= exe "`n"
}

msgbox, % newList

return

关于AutoHotkey:列出所有打开的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56064154/

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