【发布时间】:2017-06-09 15:52:27
【问题描述】:
我正在尝试确定 HTA 是否是前景窗口。以下 PowerShell 通常会识别前台窗口:
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class UserWindows {
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
}
"@
$a = [UserWindows]::GetForegroundWindow()
get-process | ? { $_.mainwindowhandle -eq $a }
但是,如果 HTA 在前台,则返回 no 进程。 (即有一个MainWindowHandle,但是没有进程!?)
MSHTA 进程有一个完全不同的 MainWindowHandle,但没有窗口。
Process Hacker 将 HTA 窗口(框架或内容)识别为 mshta 进程。
如何通过脚本匹配 HTA 窗口和 mshta.exe?或者,如何在不知道它是否在前面的情况下获取HTA窗口的MainWindowHandle?
【问题讨论】:
标签: powershell user-interface hta