Monitor en mode Estalvi d’energia amb PowerShell

Seguint amb les ulilitats que pot donar el meu Stream Deck de Elgato i que anteriorment ja n’he parlat sobre treure profit amb Powershell.

Canvi de dispositius d’audio amb PowerShell

Com alguns podeu saber, el meu escriptori és el terra, tinc el meu setup (monitors, stream deck, micro, etc) tot al terra davant la TV i moltes vegades em passa que vull veure la TV inmediatament i tinc que tancar els monitors perquè no molestin, així que vaig pensar que potser amb PowerShell podría fer-ho.

Una cerca ràpida per google em va portar a Windows Tip: 4 Different Ways to Turn Off Desktop Monitor or Laptop Screen ón expliquen entre altres coses, una crida amb un script de PowerShell.

Copiar i enganxar i l’script funciona perfectament, configuro tal i com vaig fer amb els altre botons de l’Stream Deck i els monitors entren en estalvi d’energia, l’únic inconvenient és que la finestra de PowerShell queda oberta i no m’interessa, molesta trobarla oberta al despertar els monitors.

function Set-DisplayOff
{
	$code = @"
	using System;
	using System.Runtime.InteropServices;
	public class API
	{
		[DllImport("user32.dll")]
		public static extern
		int SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
	}
	"@
	$t = Add-Type -TypeDefinition $code -PassThru
	$t::SendMessage(0xffff, 0x0112, 0xf170, 2)
}

Set-DisplayOff

Una mica més investigació m’ha portat a descobrir que a part de SendMessage existeix PostMessage, que és dintre de la API Win32 la versió asincrona de SendMessage i per tant no interfereix en el fil d’execució.

Així que el codi de l’script final queda tal que:

function Set-DisplayOff
{
	$code = @"
	using System;
	using System.Runtime.InteropServices;
	public class API
	{
		[DllImport("user32.dll")]
		public static extern
		int PostMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
	}
	"@
	$t = Add-Type -TypeDefinition $code -PassThru
	$t::PostMessage(0xffff, 0x0112, 0xf170, 2)
}

Set-DisplayOff

Unboxing Tech #20: Nueva gráfica!


Por desgracia la antigua GTX 970 empezó a hacer cosas raras, cuelgues, desaparecia del sistema (no salia en administrador de dispositivos y no la detectaba DX) y en algunos juegos empezó a mostrar cosas raras, así que a poco de terminar la garantía la llevé y me dieron la opción a poder comprar otra, así que aqui tenemos la nueva!

De paso os pongo un timelapse del montajé del PC que en su momento creo que no lo pusé ;)
via IFTTT