/PoShHotCorners

PowerShell "Hot Corners"

Primary LanguagePowerShell

PoShHotCorners

"Hot Corners" for Windows

install

  • none really, simply download the ico and ps1 files to a folder and launch the ps1
  • please note MakeShortcut.cmd batch file provided for convenience ...
    • throw resulting .lnk file in your "run on startup" folder if you like: "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup"
    • as you can see, the batch file simply runs shortcut tool xxmklink.exe with appropriate arguments

notes

  • currently:
    • upper left corner = power off monitor(s)
    • upper right corner = screensaver
  • ... but it's just powershell folks, so dream big! =)
  • the lion's share of the code is for the task tray icon...
  • look for "beef" as the key line where mouse location triggers action
  • this DOES work with multiple monitors
    • also includes tray menu options for blanking multiple displays independently
  • the timer loop inherently keeps watching the mouse so if your screens stubbornly randomly wake up like mine, this will bonk them right back to nappy time!

supporting multiple extended displays

  • if your scenario isn't working, drop me an issue on github or if you're inclined, check your [System.Windows.Forms.Screen]::AllScreens
  • here's mine:
    BitsPerPixel : 32
    Bounds       : {X=2560,Y=0,Width=1920,Height=1200}
    DeviceName   : \\.\DISPLAY2
    Primary      : False
    WorkingArea  : {X=2560,Y=0,Width=1920,Height=1160}
    
    BitsPerPixel : 32
    Bounds       : {X=0,Y=0,Width=2560,Height=1600}
    DeviceName   : \\.\DISPLAY3
    Primary      : True
    WorkingArea  : {X=0,Y=0,Width=2560,Height=1560}
    
  • i have 2 screens side-by-side, so note the Bounds of the first where X has a value...
  • so that's where the $mouse.X-$bounds.X in the "beef" check works for me...
  • hopefully that approach will carry through other monitor arragements with a little testing

tips

  • if you find that your windows get all jumbled after sleeping the monitors, this post actually seemed to help... but all i did was simply delete the whole registry folder HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration (i probably had at least 50 entries in there) and let Windows recreate.

favorite screensavers