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.
|