2

VMware View デスクトップから切断すると、画面の左上隅に最小化されるアプリケーションがあります。そこで、アプリをアクティブにして最大化する次の VBS を作成しました。

Set objShell = CreateObject("WScript.Shell")
 objShell.AppActivate "notepad"

objShell.SendKeys "% r"

objShell.SendKeys "% x"

ただし、一部のユーザーは、同じアプリの複数のインスタンスを開いています。では、アプリケーションのすべてのインスタンスに対してこのスクリプトを実行する方法を知りたいですか? 各インスタンスには独自の PID があるため、PID をキーオフする必要があると思いますが、これを行う方法がわかりません。

ありがとう、ブライアン

4

1 に答える 1

3

AppActivate は PID を受け入れます。WMI を使用して、その名前を持つすべてのプロセスの PID を取得できます。

Option Explicit

Dim Shell, WMI, wql, process

Set Shell = CreateObject("WScript.Shell")
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

wql = "SELECT ProcessId FROM Win32_Process WHERE Name = 'notepad.exe'"

For Each process In WMI.ExecQuery(wql)
    Shell.AppActivate process.ProcessId
    Shell.SendKeys "% r"
    Shell.SendKeys "% x"
Next

ドキュメントも参照してWin32_Process classください。

于 2013-07-31T20:23:42.620 に答える