1
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 在这里大便。如何让它闭嘴?

4

1 回答 1

4

听起来你需要| out-null[WhichProcessActive]代码行上做一个。它可能会返回 PID 并将其设置在参数中。

PowerShell 会将所有内容发送到管道中,因此除非您将方法返回值分配给变量,或者使用 或 丢弃它,[void]否则Out-Null它也将被返回。

于 2013-04-22T21:33:34.720 回答