当前位置:编程学习 > C#/ASP.NET >>

C#写的 windows服务截图问题

我写了一个windows服务,需要运行的时候不定时的截取桌面,但是调用api截图后,图片却是黑的,甚么都没有,请教各位大神们,怎么解决问题啊
附上代码

//创建显示器的DC
            IntPtr dc1 =  CreateDC("DISPLAY", null, null, (IntPtr)null);
            //由一个指定设备的句柄创建一个新的Graphics对象
            Graphics g1 = Graphics.FromHdc(dc1);
            //根据屏幕大小创建一个与之相同大小的Bitmap对象
            Bitmap ScreenImage = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, g1);

            Graphics g2 = Graphics.FromImage(ScreenImage);
            //获得屏幕的句柄
            IntPtr dc3 = g1.GetHdc();
            //获得位图的句柄
            IntPtr dc2 = g2.GetHdc();
            //把当前屏幕捕获到位图对象中
            BitBlt(dc2, 0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, dc3, 0, 0, 13369376);
            //释放屏幕句柄
            g1.ReleaseHdc(dc3);
            //释放位图句柄
            g2.ReleaseHdc(dc2);

            //压缩图片
            Image bmp = MakeThumbnail(ScreenImage, ScreenImage.Width * 3 / 4, ScreenImage.Height * 3 / 4);
            //ScreenImage.SetResolution(800,600);
            return bmp;

我将截到的图片save到磁盘,全是黑色的,截图没有成功,请问大家怎么解决
(此代码在winform程序上运行没问题)
[img=http://hiphotos.baidu.com/zhidao/pic/item/242dd42ad16a571e033bf680.jpg?t=1329352972845&t=1329353004528][/img] --------------------编程问答-------------------- 看不到图,帮顶. --------------------编程问答-------------------- 手动法:
运行services.msc -> 选择服务 -> 登录 选项卡 -> 允许服务与桌面交互

注册表法:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服务名 -> Type |= 0x100

编程法:
根据编译器提供的服务组件,应该有选项可选
例如以前我用BCB时,服务组件有一名为 Interacitve 的属性可进行设置 --------------------编程问答-------------------- 谢谢foreachif xp能解决问题了,但是win7仍然不行啊 --------------------编程问答-------------------- 这个解决起来就麻烦了
http://tech.sina.com.cn/s/2009-09-24/07561078945.shtml

http://www.cnblogs.com/gnielee/archive/2010/04/08/session0-isolation-part2.html
->这篇要看看评论 --------------------编程问答-------------------- 圖片顯示不出來  幫頂
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,