好吧,我知道如何使用PowerShell方法最小化桌面上所有打开的窗口--MinimizeAll():
powershell -command "& { $x = New-Object -ComObject Shell.Application; $x.minimizeall() }"
问题是:这个方法最小化了包括当前cmd-console在内的一切,在我的情况下,用户始终可以看到它。
现在,要解决此问题,我使用外部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工具。任何想法?
答案 0 :(得分:4)
最小化除活动窗口之外的所有窗口(切换命令):
nircmd sendkeypress rwin+home