Mit VBScript 2. Monitor erkennen
Hallo,
benötige Hilfe. Vielleicht hat jemand eine Idee
Vor der Ausgabe einer Diashow auf einen 2. Monitor soll geprüft werden ob der 2. Monitor nun eingeschaltet wurde. Dies funktioniert mit verschiedenen VBSript Methoden sehr gut, allerdings nur wenn der 2. Monitor auch von Windows erkannt wurde.
Das heißt erst nach Rechtsklick auf dem Desktop und dem Menüpunkt "Bildschirmauflösung"/"Erkennen" ist die Anzahl der Monitore von Windows korrekt eingetragen und lässt sich mit Vbs richtig auslesen.
Ich habe nun versucht dies mit einem Script wie folgt zu simulieren:
Das Skript öffnet zwar das Fenster Bildschirmauflösung, wartet aber immer auf eine Tastatureingabe. Die Zeile mit der Anweisung SendKeys wird erst nach schließen des Fensters abgearbeitet.
Ev. muß auch noch die Einstellung bei "Mehrere Anzeigen:" per Sript geändert werden. Hat jemand eine Idee wie man das Fenster per Vbs bedienen kann?
Oder gibt es eine andere Möglichkeit Windows dazu zu bringen die Anzahl der angeschlossenen Monitore zu aktualisieren?
benötige Hilfe. Vielleicht hat jemand eine Idee
Vor der Ausgabe einer Diashow auf einen 2. Monitor soll geprüft werden ob der 2. Monitor nun eingeschaltet wurde. Dies funktioniert mit verschiedenen VBSript Methoden sehr gut, allerdings nur wenn der 2. Monitor auch von Windows erkannt wurde.
Das heißt erst nach Rechtsklick auf dem Desktop und dem Menüpunkt "Bildschirmauflösung"/"Erkennen" ist die Anzahl der Monitore von Windows korrekt eingetragen und lässt sich mit Vbs richtig auslesen.
Ich habe nun versucht dies mit einem Script wie folgt zu simulieren:
set WshShell = WScript.CreateObject("WScript.Shell")
WindowsPfad = WshShell.ExpandEnvironmentStrings("%windir%")
WSHShell.Run WindowsPfad&"\System32\rundll32.exe shell32.dll, Control_RunDLL Desk.cpl,,3"
set Sk = CreateObject("WScript.Shell")
'Sk.SendKeys "%n"
Ev. muß auch noch die Einstellung bei "Mehrere Anzeigen:" per Sript geändert werden. Hat jemand eine Idee wie man das Fenster per Vbs bedienen kann?
Oder gibt es eine andere Möglichkeit Windows dazu zu bringen die Anzahl der angeschlossenen Monitore zu aktualisieren?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 259825
Url: https://administrator.de/forum/mit-vbscript-2-monitor-erkennen-259825.html
Ausgedruckt am: 18.05.2025 um 07:05 Uhr
3 Kommentare
Neuester Kommentar

Hallo VbsUser!
Ich vermute eher, dass der SendKey in's leere läuft, d.h. das er schon ausgeführt wird, bevor das Fenster geöffnet ist. Versuch mal eine Verzögerung durch ein Sleep vor dem Sendkey...
Grüße Dieter
Ich vermute eher, dass der SendKey in's leere läuft, d.h. das er schon ausgeführt wird, bevor das Fenster geöffnet ist. Versuch mal eine Verzögerung durch ein Sleep vor dem Sendkey...
Grüße Dieter

Moin,
dann musst du aber vorher im Script noch das Assembly laden
Wenn das ganze aus VBS aufgerufen werden soll geht das bspw. so
Gruß jodel32
dann musst du aber vorher im Script noch das Assembly laden
Add-Type -AssemblyName System.Windows.Forms
Set objShell = CreateObject("Wscript.Shell")
screens = objShell.Run("""C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"" -ExecutionPolicy ByPass -Command ""&{Add-Type -AssemblyName System.Windows.Forms;exit([System.Windows.Forms.Screen]::AllScreens.Length)}""",0,True)
MsgBox screens