Want screen capture of server desktop

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I am developing a web based service tool using asp.net that we will distribute with
our product. This service tool will be used for remotely configuring the product, problem
determination, etc. One thing that I would like to be able to do is display a screen
capture of our product running. I have the code to get the screen capture of the
desktop and I also know how to send the image back to the client to be displayed.
The problem is that the code to grab the desktop image doesn't work when running
in my asp.net code on the server.

From what I have read on the subject, I suspect the problem is that the web server
is running under its own virtual desktop. If so can someone tell me if what I am
trying to do is even possible and if so how. The code I am using is as follows:
(I believe gr1.GetHdc() is where things start to fail).

System.Drawing.Image myImage = new Bitmap(1600, 1200);
Graphics gr1 = Graphics.FromImage(myImage);
IntPtr dc1 = gr1.GetHdc();
IntPtr dc2 = GetWindowDC(GetDesktopWindow());
BitBlt(dc1, 0, 0, 1600, 1200, dc2, 0, 0, 13369376);

Response.BufferOutput=true;
Response.Clear();
Response.ContentType="image/gif";
myImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
Response.End();

Thanks,

Terry
 
I think that you can't get a printscreen on server because the server is
logged off.
You can try changing IIS service property. You can try to check Allow
Interact with desktop flag.

Brun
 
You will probably find more expert at this newsgroup

microsoft.public.dotnet.framework.drawing
 
I am not sure what you mean by "the server is logged off". In this case,
our product will be running on the server at the time I wish to do the screen
capture, so it will have been logged onto by someone.

I did try checking "Allow Interact with desktop flag" for the WWW Publishing
service but that didn't seem to help ... is there another service I should also
be checking that flag for?

Terry

----- Bruno Sirianni wrote: -----

I think that you can't get a printscreen on server because the server is
logged off.
You can try changing IIS service property. You can try to check Allow
Interact with desktop flag.

Brun
 
I have tryed yuor code and read MSDN documentation.

gr1.GetHdc() return the device context for a Windows GDI-based structure.
ASP.NET is not in a windows form!!

You can try making a simple form application that do this.
You can run this exe and then get the image...

Brun
 
I have a service (look like IIS) that can execute applicacation.
1 of this application is used for make graphics (Pie, etc...). The component
I use for render this must have the desktop because if not graph is blank!
I have set interact with desktop property of my service and there is not
problem!

When Application run I can see this!!!!

Brun!
 
Back
Top