The PowerShell 2.0 version is available here : Invoke-BossMode (PowerShell 2.0)

When attempting to be productive I have the tendency to be my own worst enemy. I will have twitter/email/websites all open at the same time I am trying to get something done. As a result I decided to write a script to temporarily remove the windows of some of my distractions from my desktop and to have them reappear at the press of a button.

Additionally it can be useful to temporarily hide certain confidential information while you explain something to a nosey colleague looking over your shoulder.

Version 1.0 - Initial Upload

Version 1.1

 

 

 

PowerShell
Edit|Remove
'wordpad','notepad','calc' | Invoke-BossMode
 

Hides the windows of all wordpad, notepad and calc process until enter is pressed in the PowerShell console

 

 

 

 

PowerShell
Edit|Remove
<#    
.SYNOPSIS    
Function to show or hide a window using the ShowWindow method 
 
.DESCRIPTION  
This script provides the ability to temporarily show or hide a number of windows. The windows can be set to reappear on pressing enter, a time out or a hidden string that should be entered in the correct order. The use case for this script is to temporarily remove a number of applications from view, allowing to work without distractions. 
 
.PARAMETER ProcessName 
This can be a single process name or an array of process names which will be hidden by the function 
 
.PARAMETER TimeOut 
Optional parameter, changing the default behaviour of waiting for the enter key and instead having a timer to hide the windows for a certain time 
     
.PARAMETER HiddenPassword 
Optional parameter, changing the default behaviour of waiting for the enter key and instead setting a hidden string as a password. If 'jaap' as a string is given then the script only shows the windows if the characters are typed in the correct order j a a p, typing jaaap would not unlock the computer but typing jaaapjaap would as the hidden password resets to the first character when an incorrect character is typed. 
 
.PARAMETER NoClear 
This parameter can be set to prevent the PowerShell console from being cleared, the default behavior of the script is to clear the PowerShell console 
 
.NOTES    
Name: Invoke-BossMode 
Author: Jaap Brasser 
DateUpdated: 2015-05-29 
Version: 1.1 
Blog: http://www.jaapbrasser.com 
 
.LINK 
http://www.jaapbrasser.com 
 
.EXAMPLE 
. .\Invoke-BossMode.ps1 
 
Description 
----------- 
This command dot sources the script to ensure the Invoke-BossMode function is available in your current PowerShell session 
 
.EXAMPLE 
Get-Process calc,notepad | Invoke-BossMode 
 
Description 
----------- 
Use Get-Process to retrieve a list of applications and pipe it into the Invoke-BossMode function to hide the windows until enter is pressed 
 
.EXAMPLE 
Invoke-BossMode -TimeOut 5 -ProcessName powershell_ise 
 
Description 
----------- 
Will hide the powershell_ise while clearing the console and the window will be visible again after five seconds 
 
.EXAMPLE 
Invoke-BossMode -TimeOut 5 -ProcessName calc,notepad -NoClear 
 
Description 
----------- 
Will hide the calc and notepad windows while not clearing the console and the windows will be visible again after five seconds 
 
.EXAMPLE 
'wordpad','notepad','calc' | Invoke-BossMode -NoClear -TimeOut 10 
 
Description 
----------- 
Hide wordpad, notepad and calc for 10 seconds without clearing the console 
 
.EXAMPLE 
PowerShell.exe -Command "& {. C:\Scripts\Invoke-BossMode.ps1; Invoke-BossMode -TimeOut 5 -ProcessName powershell_ise}" 
 
Description 
----------- 
Will hide the powershell_ise while clearing the console and the window will be visible again after five seconds. This example can be used when scheduling tasks or for batch files. 
 
.EXAMPLE 
'notepad' | Invoke-BossMode -HiddenPassword Jaap 
 
Description 
----------- 
Pipe the string notepad into Invoke-BossMode and clear the console. The windows will only reappear if the secret password is typed in the correct order in the PowerShell console 
 
.EXAMPLE 
function ivb {Invoke-BossMode -ProcessName notepad -TimeOut 2} 
 
Description 
----------- 
Create a function to run the Invoke-BossMode with a number of pre-defined parameters to quickly be able to Invoke-BossMode without have to type the full command 
#>