Bildschirmauflösung bei RDP ermitteln in RemoteApp bei TS2008

05/12/2008 - 10:21 von Peter Hesse | Report spam
Hi,

ich bràuchte eine Möglichkeit, in einer Batch-Datei die aktuelle
Bildschirmauflösung der Remotedesktopverbindung im RemoteApp-Modus zu
ermitteln.

Der erste Versuch war mit folgendem VBScript:


On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "oot\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_DisplayConfiguration",,48)
For Each objItem in colItems
Wscript.Echo "Bildschirmaufloesung: " & objItem.PelsWidth & "x" &
objItem.PelsHeight
Next


Das klappt lokal gut, nur per RDP (normal, also ohne RemoteApp) scheint das
Script die physikalische Auflösung des Terminal-Servers (Server 2008)
anzuzeigen. Also bei 1280x1024 zeigt es in der RDP Verbindung 1024x768 an.
Das ist die reale Auflösung der Grafikkarte des TS. Verbunden wurde mit
1280x1024, was auch in den "Anzeigeeinstellungen" zu sehen ist.

Als zweites habe ich folgendes getestet (RDP normal, also ohne RemoteApp):

Set obj = CreateObject("InternetExplorer.Application")
obj.Navigate("about:blank")
sw = obj.document.ParentWindow.screen.width
sh = obj.document.ParentWindow.screen.height

Wscript.Echo "Bildschirmaufloesung: " & sw & "x" & sh


Damit wird die Auflösung im RDP richtig ermittelt. Also 1280x1024 bzw. wenn
ich mich mit anderen Auflösungen verbinde wie z.B. 1152x864 oder 800x600
dann wird das richtig ausgegeben.

Nur wenn ich jetzt das Script im RemoteApp Modus starte, in dem eine
Command-Line-Box gestartet wird, dann ist die Auflösung ganz seltsam: Es
wird 2304x1024 angegeben, obwohl das dargestellte Fenster maximal (inkl.
Fensterrahmen) nur 812x481 Pixel hat. Ohne Rahmen hat es 800x450. Ich hàtte
gedacht, dass mir das Script dann auch diese Auflösung ausgibt.

Wisst ihr, wie man die Auflösung in Remoteapp korrekt ermitteln kann? Oder
sollte ich das besser in einem VBScript Forum fragen? Oder gibt es eine
alternative (bessere) Methode per Batch festzustellen, ob gerade eine
RemoteApp Modus oder eine normaler RDP Verbindung aktiv ist? Die
Umgebungsvariablen scheinen bei beiden leider genau gleich zu sein.

Danke, Peter
 

Lesen sie die antworten

#1 jolteroli
06/12/2008 - 15:02 | Warnen spam
seamless rdp ist mehr oder weniger das, was du siehst. der trick besteht
salop gesagt darin, den übrigen (leeren) desktop um das fenster herum
abzuschneiden, daher deine werte wenn du nach der desktop-grösse fragst.
seamless ist mehr schein als sein...

-jolt

"Peter Hesse" schrieb im Newsbeitrag
news:
Hi,

ich bràuchte eine Möglichkeit, in einer Batch-Datei die aktuelle
Bildschirmauflösung der Remotedesktopverbindung im RemoteApp-Modus zu
ermitteln.

Der erste Versuch war mit folgendem VBScript:


On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "oot\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_DisplayConfiguration",,48)
For Each objItem in colItems
Wscript.Echo "Bildschirmaufloesung: " & objItem.PelsWidth & "x" &
objItem.PelsHeight
Next


Das klappt lokal gut, nur per RDP (normal, also ohne RemoteApp) scheint
das Script die physikalische Auflösung des Terminal-Servers (Server 2008)
anzuzeigen. Also bei 1280x1024 zeigt es in der RDP Verbindung 1024x768 an.
Das ist die reale Auflösung der Grafikkarte des TS. Verbunden wurde mit
1280x1024, was auch in den "Anzeigeeinstellungen" zu sehen ist.

Als zweites habe ich folgendes getestet (RDP normal, also ohne RemoteApp):

Set obj = CreateObject("InternetExplorer.Application")
obj.Navigate("about:blank")
sw = obj.document.ParentWindow.screen.width
sh = obj.document.ParentWindow.screen.height

Wscript.Echo "Bildschirmaufloesung: " & sw & "x" & sh


Damit wird die Auflösung im RDP richtig ermittelt. Also 1280x1024 bzw.
wenn ich mich mit anderen Auflösungen verbinde wie z.B. 1152x864 oder
800x600 dann wird das richtig ausgegeben.

Nur wenn ich jetzt das Script im RemoteApp Modus starte, in dem eine
Command-Line-Box gestartet wird, dann ist die Auflösung ganz seltsam: Es
wird 2304x1024 angegeben, obwohl das dargestellte Fenster maximal (inkl.
Fensterrahmen) nur 812x481 Pixel hat. Ohne Rahmen hat es 800x450. Ich
hàtte gedacht, dass mir das Script dann auch diese Auflösung ausgibt.

Wisst ihr, wie man die Auflösung in Remoteapp korrekt ermitteln kann? Oder
sollte ich das besser in einem VBScript Forum fragen? Oder gibt es eine
alternative (bessere) Methode per Batch festzustellen, ob gerade eine
RemoteApp Modus oder eine normaler RDP Verbindung aktiv ist? Die
Umgebungsvariablen scheinen bei beiden leider genau gleich zu sein.

Danke, Peter

Ähnliche fragen