Discussion:
Incorrect colors
(too old to reply)
Raymond Duncan
2005-07-26 03:42:23 UTC
Permalink
I am a software developer and we use Terminal Services extensively. In our
software we have an option that lets users change the background color of
all the forms in our software from the standard gray to a color of the users
choosing. In order for this to work whenever a form is loaded we set the
background for the form and all the controls on the form. When I am
connected to the Terminal Server we use for development and I run the
program certain controls do not display in the selected background color.
The controls that do no change are the titles on Frames and text associated
with OptionButtons and CheckBoxes. When I transfer the same program to
another Terminal Server the background does change on all controls. Since
it works correctly for customers it isn't a showstopper but I am tired of
looking at the screen with some fields having a dfferent background color
and would love to fix the problem once and for all.

Both Terminal Servers are running Windows 2000 with Service Pack 4
All connection settings are the same.

Anyone have any ideas?

Raymond
Vera Noest [MVP]
2005-07-26 11:08:04 UTC
Permalink
So this is a user-specific setting?
Does it make any difference if the user is Administrator, or a
normal user?
If it does (it works for Admins, but not for normal users), then
it's a permission problem, and I would guess a permission on some
registry key.

I would download FileMon and RegMon from
http://www.sysinternals.com/. Run them as administrator (when no
user is connected), start a TS session as a normal user, run the
application and try to change the colours.

FileMon and RegMon will show you all "access denied" errors that
occur, so that you can give your users the necessary permissions
on a file-to file or Registry subkey basis.

_________________________________________________________
Vera Noest
MCSE, CCEA, Microsoft MVP - Terminal Server
TS troubleshooting: http://ts.veranoest.net
*----------- Please reply in newsgroup -------------*
Post by Raymond Duncan
I am a software developer and we use Terminal Services
extensively. In our software we have an option that lets users
change the background color of all the forms in our software
from the standard gray to a color of the users choosing. In
order for this to work whenever a form is loaded we set the
background for the form and all the controls on the form. When
I am connected to the Terminal Server we use for development and
I run the program certain controls do not display in the
selected background color. The controls that do no change are
the titles on Frames and text associated with OptionButtons and
CheckBoxes. When I transfer the same program to another
Terminal Server the background does change on all controls.
Since it works correctly for customers it isn't a showstopper
but I am tired of looking at the screen with some fields having
a dfferent background color and would love to fix the problem
once and for all.
Both Terminal Servers are running Windows 2000 with Service Pack
4 All connection settings are the same.
Anyone have any ideas?
Raymond
Raymond Duncan
2005-07-26 13:20:06 UTC
Permalink
I do not believe this is a security issue as I am an administrator on all of
the Terminal Servers I work on. This is somehow a problem with the Terminal
Services not sending the screen update correctly as the screen is corect
when I use pcAnyWhere to connect to the same server as the same user and run
the same program. I am guessing that somehow Terminal Services is not
transmitting the screen updates for the color change and that since this
only happens on the development server it has something to with the fact the
the screen was already displayed in gray in the code developer. It is
interesting that some controls do change and some do not. I have tried a
repaint on the offending controls and the entire form to no avail. I also
tried deleting the Terminal Server cache (C:\Documents and
Settings\xxxx\Local Settings\Application Data\Microsoft\Terminal Server
Client\Cache) on the client also to no avail. The more I look at it the
more it looks like a bug in Terminal Services.

Raymond Duncan
Post by Vera Noest [MVP]
So this is a user-specific setting?
Does it make any difference if the user is Administrator, or a
normal user?
If it does (it works for Admins, but not for normal users), then
it's a permission problem, and I would guess a permission on some
registry key.
I would download FileMon and RegMon from
http://www.sysinternals.com/. Run them as administrator (when no
user is connected), start a TS session as a normal user, run the
application and try to change the colours.
FileMon and RegMon will show you all "access denied" errors that
occur, so that you can give your users the necessary permissions
on a file-to file or Registry subkey basis.
_________________________________________________________
Vera Noest
MCSE, CCEA, Microsoft MVP - Terminal Server
TS troubleshooting: http://ts.veranoest.net
*----------- Please reply in newsgroup -------------*
Post by Raymond Duncan
I am a software developer and we use Terminal Services
extensively. In our software we have an option that lets users
change the background color of all the forms in our software
from the standard gray to a color of the users choosing. In
order for this to work whenever a form is loaded we set the
background for the form and all the controls on the form. When
I am connected to the Terminal Server we use for development and
I run the program certain controls do not display in the
selected background color. The controls that do no change are
the titles on Frames and text associated with OptionButtons and
CheckBoxes. When I transfer the same program to another
Terminal Server the background does change on all controls.
Since it works correctly for customers it isn't a showstopper
but I am tired of looking at the screen with some fields having
a dfferent background color and would love to fix the problem
once and for all.
Both Terminal Servers are running Windows 2000 with Service Pack
4 All connection settings are the same.
Anyone have any ideas?
Raymond
Vera Noest [MVP]
2005-07-26 19:07:18 UTC
Permalink
OK, I understand. Interesting problem :-)

Terminal Services relies heavily on a glyph cache for onscreen
text. Font information is exchanged at session initiation, and then
any scrapable text is passed as plain text and rendered clientside
- so almost everything (including all window names/titles and
console box text, etc) is sent as compressed text instead of as
pictures.

Since you write that the problem manifests itself in window titles
and checkboxes, my guess is that the TS is sending the text of the
title to the client, with instructions about the colour taken from
the normal windows colour scheme settings (in Control Panel -
Display - Appearance).

I'm not sure if or how this is getting you any closer to a
solution, but for the sake of testing, could you change the colour
scheme in your session and see if that change comes through to the
client?

And if that works, maybe you can change the way your application
implements colour schemes? Let the user create a custom colour
scheme (or offer a limited number of colour schemes), which you
load at startup of the application. But that would affect their
normal Windows environment as well, of course.

_________________________________________________________
Vera Noest
MCSE, CCEA, Microsoft MVP - Terminal Server
TS troubleshooting: http://ts.veranoest.net
___ please respond in newsgroup, NOT by private email ___
Post by Raymond Duncan
I do not believe this is a security issue as I am an
administrator on all of the Terminal Servers I work on. This is
somehow a problem with the Terminal Services not sending the
screen update correctly as the screen is corect when I use
pcAnyWhere to connect to the same server as the same user and
run the same program. I am guessing that somehow Terminal
Services is not transmitting the screen updates for the color
change and that since this only happens on the development
server it has something to with the fact the the screen was
already displayed in gray in the code developer. It is
interesting that some controls do change and some do not. I
have tried a repaint on the offending controls and the entire
form to no avail. I also tried deleting the Terminal Server
cache (C:\Documents and Settings\xxxx\Local
Settings\Application Data\Microsoft\Terminal Server
Client\Cache) on the client also to no avail. The more I look
at it the more it looks like a bug in Terminal Services.
Raymond Duncan
Post by Vera Noest [MVP]
So this is a user-specific setting?
Does it make any difference if the user is Administrator, or a
normal user?
If it does (it works for Admins, but not for normal users),
then it's a permission problem, and I would guess a permission
on some registry key.
I would download FileMon and RegMon from
http://www.sysinternals.com/. Run them as administrator (when
no user is connected), start a TS session as a normal user, run
the application and try to change the colours.
FileMon and RegMon will show you all "access denied" errors
that occur, so that you can give your users the necessary
permissions on a file-to file or Registry subkey basis.
_________________________________________________________
Vera Noest
MCSE, CCEA, Microsoft MVP - Terminal Server
TS troubleshooting: http://ts.veranoest.net
*----------- Please reply in newsgroup -------------*
Post by Raymond Duncan
I am a software developer and we use Terminal Services
extensively. In our software we have an option that lets
users change the background color of all the forms in our
software from the standard gray to a color of the users
choosing. In order for this to work whenever a form is loaded
we set the background for the form and all the controls on the
form. When I am connected to the Terminal Server we use for
development and I run the program certain controls do not
display in the selected background color. The controls that do
no change are the titles on Frames and text associated with
OptionButtons and CheckBoxes. When I transfer the same
program to another Terminal Server the background does change
on all controls. Since it works correctly for customers it
isn't a showstopper but I am tired of looking at the screen
with some fields having a dfferent background color and would
love to fix the problem once and for all.
Both Terminal Servers are running Windows 2000 with Service
Pack 4 All connection settings are the same.
Anyone have any ideas?
Raymond
Loading...