| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1063 人关注过本帖
标题:[讨论]关于屏幕截图的方法讨论
只看楼主 加入收藏
houyunqing
Rank: 1
等 级:新手上路
帖 子:476
专家分:0
注 册:2005-4-1
收藏
 问题点数:0 回复次数:9 
[讨论]关于屏幕截图的方法讨论
有问题:如何实现对整个屏幕的图象获取呢?或者说能够获取其Graphics也可以!

知道的兄弟请介绍一下
搜索更多相关主题的帖子: 屏幕 兄弟 Graphics 图象 
2005-04-18 19:59
冰封谷主
Rank: 4
等 级:贵宾
威 望:10
帖 子:226
专家分:20
注 册:2005-1-7
收藏
得分:0 
键盘上就有这个键,,,好象是printscreen吧

2005-04-19 10:04
幻风幻云
Rank: 1
等 级:新手上路
帖 子:762
专家分:0
注 册:2005-1-14
收藏
得分:0 
前几天见过
好像是用C#做qq魔法秀的第一步就是这样的
你在网上搜一搜吧

2005-04-19 10:08
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
楼主讨论的话题太频繁且无关。
楼主自己不讨论。
2005-04-19 20:44
唐伯猫
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:5323
专家分:58
注 册:2005-8-9
收藏
得分:0 

这个就是屏幕抓图程序: using System ;

using System.Drawing ;

using System.Collections ;

using System.ComponentModel ;

using System.Windows.Forms ;

using System.Data ;

using System.Drawing.Imaging ;

public class Form1 : Form

{

private Button button1 ;

private System.ComponentModel.Container components = null ;

public Form1 ( )

{

//初始化窗体中的各个组件

InitializeComponent ( ) ;

}

// 清除程序中使用过的资源

protected override void Dispose ( bool disposing )

{

if ( disposing )

{

if ( components != null )

{

components.Dispose ( ) ;

}

}

base.Dispose ( disposing ) ;

}

private void InitializeComponent ( )

{

button1 = new Button ( );

SuspendLayout ( ) ;

button1.Location = new System.Drawing.Point ( 64 , 40 ) ;

button1.Name = "button1" ;

button1.Size = new System.Drawing.Size ( 80 , 32 ) ;

button1.TabIndex = 0 ;

button1.Text = "捕获" ;

button1.Click += new System.EventHandler ( button1_Click ) ;

AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14 ) ;

ClientSize = new System.Drawing.Size ( 216 , 125 ) ;

Controls.Add ( button1 ) ;

MaximizeBox = false ;

MinimizeBox = false ;

Name = "Form1" ;

Text = "C#捕获当前屏幕!" ;

ResumeLayout ( false ) ;

}

//声明一个API函数

[ System.Runtime.InteropServices.DllImportAttribute ( "gdi32.dll" ) ]

private static extern bool BitBlt (

IntPtr hdcDest , // 目标 DC的句柄

int nXDest ,

int nYDest ,

int nWidth ,

int nHeight ,

IntPtr hdcSrc , // 源DC的句柄

int nXSrc ,

int nYSrc ,

System.Int32 dwRop // 光栅的处理数值

) ;

static void Main ( )

{

Application.Run ( new Form1 ( ) ) ;

}

private void button1_Click ( object sender , System.EventArgs e )

{

//获得当前屏幕的大小

Rectangle rect = new Rectangle ( ) ;

rect = Screen.GetWorkingArea ( this ) ;

//创建一个以当前屏幕为模板的图象

Graphics g1 = this.CreateGraphics ( ) ;

//创建以屏幕大小为标准的位图

Image MyImage = new Bitmap ( rect.Width , rect.Height , g1 ) ;

Graphics g2 = Graphics.FromImage ( MyImage ) ;

//得到屏幕的DC

IntPtr dc1 = g1.GetHdc ( ) ;

//得到Bitmap的DC

IntPtr dc2 = g2.GetHdc ( ) ;

//调用此API函数,实现屏幕捕获

BitBlt ( dc2 , 0 , 0 , rect.Width , rect.Height , dc1 , 0 , 0 , 13369376 ) ;

//释放掉屏幕的DC

g1.ReleaseHdc ( dc1 ) ;

//释放掉Bitmap的DC

g2.ReleaseHdc ( dc2 ) ;

//以JPG文件格式来保存

MyImage.Save ( @"c:\\Capture.jpg" , ImageFormat.Jpeg );

MessageBox.Show ( "当前屏幕已经保存为C盘的capture.jpg文件!" ) ;

}

}


<iframe name="alimamaifrm" frameborder="0" marginheight="0" marginwidth="0" border="0" scrolling="no" width="300" height="170" src="/go/app/tbk_app/chongzhi_300_170.php?pid=mm_28854300_2441872_11377541&page=chongzhi_300_170.php&size_w=300&size_h=170&stru_phone=1&stru_game=1&stru_travel=1" ></iframe>
2005-08-09 18:00
梦幻情缘
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:769
专家分:20
注 册:2005-4-4
收藏
得分:0 
发得不错,望楼主以后多发一些.
2005-08-10 10:08
houyunqing
Rank: 1
等 级:新手上路
帖 子:476
专家分:0
注 册:2005-4-1
收藏
得分:0 
呵呵,这个月亮捞得好啊~,例子是在天极上找的吧(我都收藏了)?

寻求挑战,追求完美 Oh,my god!
2005-08-11 15:35
随风云
Rank: 1
等 级:新手上路
威 望:1
帖 子:263
专家分:0
注 册:2007-6-28
收藏
得分:0 

5楼的搞的不错


真的想象风一样去流浪!
2007-06-30 09:39
随风云
Rank: 1
等 级:新手上路
威 望:1
帖 子:263
专家分:0
注 册:2007-6-28
收藏
得分:0 

请问那个光栅出的值是不是一定是13369376 呢?


真的想象风一样去流浪!
2007-06-30 11:55
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
收藏
得分:0 
其实C# GDI+可以完全很简单的解决此类问题了,无需用麻烦的API

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2007-07-02 14:10
快速回复:[讨论]关于屏幕截图的方法讨论
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047959 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved