【问题标题】:Vbs - List all visible windows scriptVbs - 列出所有可见的窗口脚本
【发布时间】:2022-03-14 00:03:25
【问题描述】:

我正在尝试列出所有可见窗口(名称和顶部)。 我的脚本运行良好,但需要安装 Microsoft Word。 要执行我的脚本,您可以运行此命令

Cscript -B myScript.vbs

muScript.vbs:

Dim console
Set console = WScript.StdOut
Dim myString
myString = ""

Set Word = CreateObject("Word.Application")
Set Tasks = Word.Tasks
Set colTasks = Word.Tasks
For Each Task in Tasks
    If Task.Visible Then 
        If colTasks.Exists(Task.Name) Then
            myString = myString & "@@##@@" & colTasks(Task.Name).Name & ","& colTasks(Task.Name).Top
        End If  
   End If
Next
Word.Quit
console.WriteLine myString

您知道如何在不安装 Microsoft Word 的情况下列出诸如 myScript.vbs 之类的可见窗口吗?

非常感谢

【问题讨论】:

  • 您可以使用 tasklist 命令(WScript Shell Exec)按名称/窗口标题列出和过滤进程

标签: vbscript


【解决方案1】:

我认为这是不可能的。但是,您可以列出所有正在运行的进程。

http://www.computerperformance.co.uk/vbscript/wmi_process.htm

' Process.vbs
' VBScript Win32_Process to discover which processes are running
' Author Guy Thomas http://computerperformance.co.uk/
' Version 1.4 - December 2010
' -------------------------------------------------------' 
Option Explicit
Dim objWMIService, objProcess, colProcess
Dim strComputer, strList

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _ 
& strComputer & "\root\cimv2") 

Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process")

For Each objProcess in colProcess
  strList = strList & vbCr & _
  objProcess.Name
Next

WSCript.Echo strList
WScript.Quit

' End of List Process Example VBScript

【讨论】:

  • 感谢 Nathan,但使用您的脚本,我无法列出打开的窗口(位置和名称)。你能帮帮我吗?
  • 根据我的第一条评论。这是不可能的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-30
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 2011-12-20
  • 2019-03-03
  • 1970-01-01
相关资源
最近更新 更多