我需要以编程方式获取正在运行的应用程序列表,如Windows任务管理器中使用PowerShell或VBScript的"应用程序"选项卡中所示.
到目前为止我所能找到的是如何使用VBScript和WMI列出进程.
我试图摆脱所有窗口上的最小化,最大化和关闭按钮.谷歌搜索我发现这个:
$h = WinGetHandle("[CLASS:Notepad]")
$iOldStyle = _WinAPI_GetWindowLong($h, $GWL_STYLE)
$iNewStyle = BitXOr($iOldStyle, $WS_SYSMENU)
_WinAPI_SetWindowLong($h, $GWL_STYLE, $iNewStyle)
_WinAPI_ShowWindow($h, @SW_SHOW)
Run Code Online (Sandbox Code Playgroud)
这很好用,所以现在我只需要使用这段代码迭代所有窗口,我就完成了.如何获取系统中所有HWND的列表?
我想列出一个进程的所有窗口,比如 Word。这只给了我主窗口:
Get-Process winword |where {$_.mainWindowTItle} |format-table id,name,mainwindowtitle –AutoSize
Run Code Online (Sandbox Code Playgroud)
我还想在这里列出 Document1。
ID 名称 MainWindowTitle
1616 WINWORD Document2 - Microsoft Word
除了主窗口,还有其他方法可以访问窗口吗?