Monitor-Switch

Zielsetzung

An einen Laptop wird häufig ein externer Monitor angeschlossen. Mit einem Hotkey soll die Anzeige zwischen beiden Monitoren (mit unterschiedlicher Auflösung) umgeschaltet werden.

Realisierung

Ein VB-Skript ermittelt die Auflösung, startet die Einstellungen von "Eigenschaften von Anzeige" und ändert diese mittels sendkeys:

'=========
'Monitor 1
'=========
'Horizontale Auflösung:
res1=1680
'Aktivierungs-Sequenz:
'Monitor 1: Erweitern, Primär, Monitor 2: Nicht erweitern
akt1="1%w%d2%w{ENTER}"

'=========
'Monitor 2
'=========
'Horizontale Auflösung:
res2=1280
'Aktivierungs-Sequenz:
'Monitor 2: Erweitern, Primär, Monitor 1: Nicht erweitern
akt2="2%w%d1%w{ENTER}"

'=======================
'Ermitteln der Auflösung
'=======================
res=""
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DisplayConfiguration",,48)
For Each objItem in colItems
res=objItem.PelsWidth
Next

'===================================
'Starten der Systemsteuerung:Anzeige
'===================================
set ws = CreateObject("Wscript.shell")
ws.run("%windir%\system32\rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3")
x=0
do:x=x+1
loop until ws.AppActivate("Eigenschaften von Anzeige") or x>5555
if x>5555 then msgbox "Fehler: Programm braucht zu lange":WScript.Quit

'===============================
'Senden der Aktivierungs-Sequenz
'===============================
if res="" then msgbox "Fehler: Konnte aktuelle Einstellung nicht ermitteln":WScript.Quit
if res=res1 then ws.sendkeys(akt2)
if res=res2 then ws.sendkeys(akt1)

Nun wird auf dieses Skript eine Windows-Verknüpfung mit einem Hotkey gesetzt.

Skripte • © 2009 Computerhilfe Fabian Perder • www.chfp.de/skripte
Stats