cmd / powershell: свернуть все окна на рабочем столе, кроме текущей командной строки (консоли) или за исключением определенного окна

хорошо, я знаю, как свернуть все открытые окна на рабочем столе из командного файла с помощью метода powershell - MinimizeAll():

powershell -command "& { $x = New-Object -ComObject Shell.Application; $x.minimizeall() }"

проблема в том, что этот метод минимизирует все, включая текущую cmd-консоль, которая в моем случае должна быть всегда видна пользователю.

теперь, чтобы обойти эту проблему, я использую внешний инструмент nircmd.exe и эту часть моего файла . bat-файл выглядит так:

:: change current command prompt window title
title my-cmd-console

:: minimize all open windows on the desktop with powershell command
powershell -command "& { $x = New-Object -ComObject Shell.Application; $x.minimizeall()  }"

:: bring console back to the front with nircmd.exe command 'win activate [filter window by title]' 
nircmd.exe win activate title "my-cmd-console" 

Что мне не нравится в этом коде, так это то, что на экране много «мигания»: при запуске консоль появляется на рабочем столе, затем она сворачивается вместе со всеми другими окнами, а затем снова возвращается на рабочий стол.

Итак, вопрос: как сделать так, чтобы консоль отображалась на рабочем столе и «запирала ее», чтобы она никогда не исчезала из поля зрения, пока не будет достигнута командная строка EXIT.

P.S. не уверен, но, возможно, есть альтернативное решение проблемы «свернуть все, кроме определенного окна» без необходимости использования внешнего nircmd.exe инструмент. Любые идеи?


person escudero380    schedule 12.01.2014    source источник


Ответы (1)


свернуть все, кроме активного окна (команда переключения):

nircmd sendkeypress rwin+home 
person Endoro    schedule 12.01.2014
comment
о, да, это намного лучше! - person escudero380; 12.01.2014