Function lyncNotFocused {
# We need to check if the Lync window (conversation?) has focus or not.
$hwnd = [WhichWindowActive]::GetForegroundWindow()
$proc = [IntPtr]::Zero
[WhichProcessActive]::GetWindowThreadProcessId($hwnd, [ref] $proc);
Write-Host "DEBUG: Focused - hwnd $hwnd, process $proc"
if (Get-Process -ID $proc -ErrorAction "SilentlyContinue" | Where { $_ -notmatch "lync" }) { return $true }
else { return $false }
}
返回类似“12412 True”或“9867 False”的内容。从不只是普通的布尔值。这些数字对应于我正在查找的PID,似乎Get-Process cmdlet正在这里铺平道路。如何让它闭嘴?
答案 0 :(得分:4)
听起来您需要在| out-null
代码行上执行[WhichProcessActive]
。它可能会返回PID并将其设置在参数中。
PowerShell会将所有内容发送到管道中,因此除非您将方法返回值分配给变量,或者使用[void]
或Out-Null
将其丢弃,否则它也会被返回。