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

如何在web里实现截屏功能啊??

在浏览器里如何实现截屏功能啊?? --------------------编程问答-------------------- 必须利用activex控件。
--------------------编程问答-------------------- 上楼能说的清楚些吗?? --------------------编程问答-------------------- jf

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

namespace karso
...{
    class Program
    ...{
        static void Main(string[] args)
        ...{
                //获得当前屏幕的分辨率
            Screen scr = Screen.PrimaryScreen;
            Rectangle rc = scr.Bounds;
            int iWidth = rc.Width;   
            int iHeight = rc.Height;
                //创建一个和屏幕一样大的Bitmap
            Image myImage = new Bitmap(iWidth, iHeight); 
                //从一个继承自Image类的对象中创建Graphics对象
            Graphics g = Graphics.FromImage(myImage);
                //抓屏并拷贝到myimage里
            g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(iWidth, iHeight));
                //保存为文件
            myImage.Save(@"c:/karso.jpeg");

        }

    }
} --------------------编程问答-------------------- 我顶!!!!顶!!! --------------------编程问答-------------------- http://www.codeproject.com/useritems/website_screenshot.asp --------------------编程问答-------------------- karso() 
人家要的是web的,不是winform --------------------编程问答-------------------- 是啊!是在web里的!!不是在winform里的!! --------------------编程问答-------------------- 帮顶 学习 --------------------编程问答-------------------- 还有高手知道吗?? --------------------编程问答-------------------- zzmsl(周先生) 、student_oa() 
这样的需求单靠Web是无法做到的,随便让你截屏客户端还哪有安全性?
只能靠ActiveX或嵌入WinForm实现。 --------------------编程问答-------------------- 你是不是以前问过,只能用ActiveX。因为安全性的问题,web不允许有这个功能(安全沙箱),ActiveX能实现,所以ActiveX的安全性广受诟病。
下面是VC++写的ActiveX的关键代码,用C#应该更容易,但客户端运行ActiveX不知道需不需要安装Framework。
HBITMAP CCopyScr::CopyToBmp(CRect Rect)
{
// 屏幕和内存设备描述表
HDC hScrDC, hMemDC;      

// 位图句柄
HBITMAP hBitmap, hOldBitmap;   

// 选定区域坐标
int nX, nY, nX2, nY2;      

// 位图宽度和高度
int nWidth, nHeight;      

// 屏幕分辨率
int xScrn, yScrn;         

// 确保选定区域不为空矩形
if (IsRectEmpty(&Rect))
return NULL;

//为屏幕创建设备描述表
hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);

//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC = CreateCompatibleDC(hScrDC);

// 获得选定区域坐标
nX = Rect.left;
nY = Rect.top;
nX2 = Rect.right;
nY2 = Rect.bottom;

// 获得屏幕分辨率
xScrn = GetDeviceCaps(hScrDC, HORZRES);
yScrn = GetDeviceCaps(hScrDC, VERTRES);

//确保选定区域是可见的
if (nX < 0)
nX = 0;
if (nY < 0)
nY = 0;
if (nX2 > xScrn)
nX2 = xScrn;
if (nY2 > yScrn)
nY2 = yScrn;
nWidth = nX2 - nX;
nHeight = nY2 - nY;

// 创建一个与屏幕设备描述表兼容的位图
hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);

// 把新位图选到内存设备描述表中
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);

// 把屏幕设备描述表拷贝到内存设备描述表中
BitBlt(hMemDC, 0, 0, nWidth, nHeight, hScrDC, nX, nY, SRCCOPY);

//得到屏幕位图的句柄
hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);

//清除
DeleteDC(hScrDC);
DeleteDC(hMemDC);

// 返回位图句柄
return hBitmap;
} --------------------编程问答-------------------- 楼主说的截屏是什么意思?我发的连接中的文章是说如何在asp.net程序中抓取某个网站的页面生成图片,楼主如果是要抓取客户端的屏幕,那你只能用activeX控件了,或者网页内嵌入winform控件,但那需要调整客户端安全设置,否则没有权限。 --------------------编程问答-------------------- 如果截取web客户端当前屏幕,不用activex恐怕不行 --------------------编程问答-------------------- 兄弟,其实,告诉你,MS的家伙们都会去想activex,但是如果是LINUX,怎么办,没关系,借助于强大的java applet,让你轻松搞定,不用再为了截屏而痛苦的下载Activex,用applet吧! --------------------编程问答-------------------- 我在一本教程上 好像 .net 的 WebRequest 和 WebResponse 应该可以实现吧! 你去看看!  --------------------编程问答-------------------- Activex,嵌入winform就算,谁装framework呀,可采用C++或delphi编写。 --------------------编程问答-------------------- 推荐使用新颖网络截屏插件。
详细介绍:http://www.cnblogs.com/xproer/archive/2010/12/05/1896778.html --------------------编程问答--------------------
引用 17 楼 songsu 的回复:
推荐使用新颖网络截屏插件。
详细介绍:http://www.cnblogs.com/xproer/archive/2010/12/05/1896778.html


免费吗 --------------------编程问答-------------------- 帮顶   学习
--------------------编程问答--------------------
引用 17 楼 songsu 的回复:
推荐使用新颖网络截屏插件。
详细介绍:http://www.cnblogs.com/xproer/archive/2010/12/05/1896778.html


需要降低安全级别 --------------------编程问答-------------------- 学习了 --------------------编程问答--------------------
引用 20 楼 luosaimingjavaandc 的回复:
引用 17 楼 songsu 的回复:

推荐使用新颖网络截屏插件。
详细介绍:http://www.cnblogs.com/xproer/archive/2010/12/05/1896778.html


需要降低安全级别


这只是一个测试环境,如果用在网站上是需要进行数字签名的。 --------------------编程问答-------------------- 楼主试试这个WEB截屏控件:http://www.cnblogs.com/xproer/archive/2010/12/05/1896778.html
与FCKEditor2.x整合

与CKEditor3.x整合

与KindEditor3.x整合

补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,