【问题标题】:Get a list of all open windows from the command line从命令行获取所有打开窗口的列表
【发布时间】:2013-03-19 04:05:13
【问题描述】:

在 Windows 7 中,是否可以从命令行获取所有打开的桌面窗口的列表?我知道可以从命令行获取list of all running processes,但我想知道是否也可以获取打开的窗口列表。

【问题讨论】:

标签: windows-7


【解决方案1】:

使用

tasklist /fi "windowtitle eq <Title of window*>"

例如:

tasklist /fi "windowtitle eq Notepad*"

【讨论】:

  • 现在想知道在不知道每个窗口标题的情况下,获取打开的窗口列表是否可行。
  • 那里也应该有 eq 或 ne 条件:tasklist /fi "windowtitle eq Notepad*"
  • @Almund - 你应该编辑答案来解决这个问题。我已经处理好了。
  • 我不需要活动进程,我需要活动窗口。一个进程可以打开几个窗口。即使只创建一个窗口,此命令也不起作用。
【解决方案2】:

来自NirSoft 的 WinLister 列出机器上所有活动的窗口以及相关信息(标题、路径、句柄、类、位置、进程 ID、线程 ID 等)。它有一个 GUI 界面而不是命令行。

【讨论】:

  • 比 nirsoft 的 GUIPropView 更好。
【解决方案3】:

如果你只是使用下面的命令,它会列出所有活跃的进程

任务列表

或者按会话名称过滤会限制更多通过控制台启动进程:

tasklist /FI "SESSIONNAME eq 控制台"

【讨论】:

  • 我不需要活动进程,我需要活动窗口。一个进程可以打开几个窗口。
【解决方案4】:

“/v”选项在最后一列列出窗口名称。如“任务列表 /v”。您也可以将其通过管道传输到另一个应用程序或查找进行过滤。

【讨论】:

  • tasklist /v 超级慢
【解决方案5】:

使用 powershell。命令是:Get-Process

你可以试试这个:

##Method 1: (Gives you all the processes)
Get-Process

## Method 2: Detailed Info On a specific named Process
$ProcessTerm="chrome"
#Run This:
$FindProcess = Get-Process | Where-Object {$_.MainWindowTitle -like "*$processterm*"}
Get-Process -ID $FindProcess.ID | Select-Object *

# FindProcess.ID will give you the ID of the above process

#Method 3: (if you know the process ID)
$ProcessID = "9068"
$FindProcess = Get-Process | Where-Object {$_.id -eq "$ProcessID"}
Get-Process -ID $FindProcess.Id | Select-Object *

【讨论】:

    猜你喜欢
    • 2014-08-27
    • 1970-01-01
    • 2013-08-29
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 2010-09-20
    相关资源
    最近更新 更多