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 コマンドレットがここでベッドをうんざりさせているようです。黙らせるにはどうしたらいいですか?

4

1 に答える 1

4

コード行でa| out-nullを実行する必要があるようです。[WhichProcessActive]おそらくPIDを返し、パラメータに設定しています。

PowerShell はパイプラインにすべてを送信するため、メソッドの戻り値を変数に割り当てるか、 または で破棄しない限り[void]Out-Nullそれも返されます。

于 2013-04-22T21:33:34.720 に答える