Getting Color Depth / Quality of display adpater / screen

H

hayworth

How do I get the color depth of the screen/display adapter with vb.net
2003?

Background: We're having transparency problems (long side story and
known Windows "bug") that requires our systems to have the Color Depth
or "Color Quality" (bits per pixel) of the display adapter (screen) to
be 16 bits (Called "Medium (16 bit)" in the Display Properties Control
Panel) in order for it to work.


All I've been able to find are antique code examples using API calls
such as GetDeviceCaps, EnumDisplaySettings, etc. Isn't there some new
..Net way of finding out the colordepth like
Screen.whatever or
System.Windows.Forms.something?
I sure couldn't find any (after a long time of trying things like web
searches, MSDN, etc.) but surely there must be some way.

Then I could alert the user that they are in 32 bit colordepth and they
need to change their display properties to 16 bit. Bonus points if you
can tell me how to do the switch from 32 or 24 bits per pixel into 16
bits per pixel right in the my program's code without exiting the
program and doing it via the "Color Quality" drop down in the Display
Properties control panel.

Antique (I think) code examples:
http://abstractvb.com/code.asp?A=947
http://www.developerfusion.co.uk/show/268/

To recap:
1: What is the .Net code to retrieve display color depth?
2. What is the .Net code to change it on the fly?

Mark
 
C

Carlos J. Quintero [VB MVP]

Hi Mark,

AFAIK, there is no managed way in .NET 1.x.

In .NET 2.0 you have My.Computer.Screen.BitsPerPixel

--

Best regards,

Carlos J. Quintero

MZ-Tools: Productivity add-ins for Visual Studio
You can code, design and document much faster:
http://www.mztools.com
 
J

JJ

Well done on getting a reply Mark. I guess it must by the way I word my
questions....!

At least we know now - thanks Carlos.
 
H

hayworth

Carlos:
Thanks for your extemely quick response. I got no Intellisence for MY.
so I guess I'm using .Net 1.x. I tried to upgrade to VS2005 but it
said I had to have XP Service Pack 2 installed (which apparently my
company hasn't for some reason - it's not part of our official standard
platform yet). So 2 more questions:
1. Is it possible to use .Net 2.0 with VS2003?
2. Can anyone give code that will get the job done in VB.Net 2003? (I
tried the antique code above and it didn't seem to work)
Thanks,
Mark
 
A

Armin Zingler

Carlos:
Thanks for your extemely quick response. I got no Intellisence for
MY. so I guess I'm using .Net 1.x. I tried to upgrade to VS2005 but
it said I had to have XP Service Pack 2 installed (which apparently
my company hasn't for some reason - it's not part of our official
standard platform yet). So 2 more questions:
1. Is it possible to use .Net 2.0 with VS2003?

No.


Armin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top