2016-11-25 72 views
0

我需要在進程發生錯誤時用腳本截圖。有沒有辦法將除了一個之外的所有窗口最小化?

是否有一種方法來最小化所有窗口,除了獲得錯誤的進程的窗口?

我知道,以儘量減少一路:

$shell = new-object -com shell.application 
$shell.MinimizeAll() 

但是,有沒有辦法,除了一個窗口,以儘量減少一切嗎?

謝謝!

+0

你可以使用[的ShowWindow()](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85% 29.aspx)到[恢復相關窗口](https://gist.github.com/IISResetMe/819dbc4c71b3bc9768db)後最小化所有 –

回答

1

使用API​​的Windows

$Win32ShowWindowAsync = Add-Type –memberDefinition @」 
[DllImport("user32.dll")] 
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 
「@ -name 「Win32ShowWindowAsync」 -namespace Win32Functions –passThru 

$titletowindow="TODO.csv - Bloc-notes" 

get-process | 
     where mainwindowhandle -ne 0 | 
      %{if ($_.MainWindowTitle -eq $titletowindow) { $Win32ShowWindowAsync::ShowWindowAsync($_.MainWindowHandle, 3) | Out-Null} else { $Win32ShowWindowAsync::ShowWindowAsync($_.MainWindowHandle, 6) | Out-Null} } 
+0

對不起,方式太遲反饋,完美工作,thx! – SimonS

相關問題