【发布时间】:2015-10-27 16:57:52
【问题描述】:
是否可以根据它在 powershell 中的子窗口句柄获取进程 ID?
例如,此脚本查找标题为“警告”的窗口句柄:
$sig = @"
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(IntPtr sClassName, String sAppName);
[DllImport("kernel32.dll")]
public static extern uint GetLastError();
"@
$fw = Add-Type -Namespace Win32 -Name Funcs -MemberDefinition $sig -PassThru
$wname='Warning'
$find_window = $fw::FindWindow([IntPtr]::Zero, $wname )
Write-Host $find_window
它在任务管理器中的显示方式:
Program.exe
|
\Warning
现在我需要确定 - 哪个 PID 有这个警告窗口。我知道可以在 C# 中实现(我根本不使用),但这应该只在 powershell 上完成。
【问题讨论】:
标签: windows powershell winapi