zoukankan
html css js c++ java
屏幕捕获程序
using
System;
using
System.Drawing;
using
System.Collections;
using
System.ComponentModel;
using
System.Windows.Forms;
using
System.Data;
using
System.Drawing.Imaging;
namespace
屏幕捕获程序
{
/**/
///
<summary>
///
Form1 的摘要说明。
///
</summary>
public
class
Form1 : System.Windows.Forms.Form
{
private
System.Windows.Forms.Button button1;
/**/
///
<summary>
///
必需的设计器变量。
///
</summary>
private
System.ComponentModel.Container components
=
null
;
public
Form1()
{
//
//
Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
//
TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/**/
///
<summary>
///
清理所有正在使用的资源。
///
</summary>
protected
override
void
Dispose(
bool
disposing )
{
if
( disposing )
{
if
(components
!=
null
)
{
components.Dispose();
}
}
base
.Dispose( disposing );
}
Windows Form Designer generated code
#region
Windows Form Designer generated code
/**/
///
<summary>
///
设计器支持所需的方法 - 不要使用代码编辑器修改
///
此方法的内容。
///
</summary>
private
void
InitializeComponent()
{
this
.button1
=
new
System.Windows.Forms.Button();
this
.SuspendLayout();
//
//
button1
//
this
.button1.Location
=
new
System.Drawing.Point(
48
,
48
);
this
.button1.Name
=
"
button1
"
;
this
.button1.Size
=
new
System.Drawing.Size(
112
,
40
);
this
.button1.TabIndex
=
0
;
this
.button1.Text
=
"
开始
"
;
this
.button1.Click
+=
new
System.EventHandler(
this
.button1_Click);
//
//
Form1
//
this
.AutoScaleBaseSize
=
new
System.Drawing.Size(
6
,
14
);
this
.ClientSize
=
new
System.Drawing.Size(
232
,
149
);
this
.Controls.AddRange(
new
System.Windows.Forms.Control[]
{
this
.button1}
);
this
.Name
=
"
Form1
"
;
this
.Text
=
"
Form1
"
;
this
.ResumeLayout(
false
);
}
#endregion
/**/
///
<summary>
///
应用程序的主入口点。
///
</summary>
[STAThread]
static
void
Main()
{
Application.Run(
new
Form1());
}
[ System.Runtime.InteropServices.DllImportAttribute (
"
gdi32.dll
"
) ]
private
static
extern
bool
BitBlt (
IntPtr hdcDest ,
//
目标设备的句柄
int
nXDest ,
//
目标对象的左上角的X坐标
int
nYDest ,
//
目标对象的左上角的X坐标
int
nWidth ,
//
目标对象的矩形的宽度
int
nHeight ,
//
目标对象的矩形的长度
IntPtr hdcSrc ,
//
源设备的句柄
int
nXSrc ,
//
源对象的左上角的X坐标
int
nYSrc ,
//
源对象的左上角的X坐标
System.Int32 dwRop
//
光栅的操作值
) ;
[ System.Runtime.InteropServices.DllImportAttribute (
"
gdi32.dll
"
) ]
private
static
extern
IntPtr CreateDC (
string
lpszDriver ,
//
驱动名称
string
lpszDevice ,
//
设备名称
string
lpszOutput ,
//
无用,可以设定位"NULL"
IntPtr lpInitData
//
任意的打印机数据
) ;
private
void
button1_Click(
object
sender, System.EventArgs e)
{
this
.Hide();
IntPtr dc1
=
CreateDC (
"
DISPLAY
"
,
null
,
null
, ( IntPtr )
null
) ;
//
创建显示器的DC
Graphics g1
=
Graphics.FromHdc ( dc1 ) ;
//
由一个指定设备的句柄创建一个新的Graphics对象
Bitmap MyImage
=
new
Bitmap ( Screen.PrimaryScreen.Bounds.Width , Screen.PrimaryScreen.Bounds.Height , g1 ) ;
//
根据屏幕大小创建一个与之相同大小的Bitmap对象
Graphics g2
=
Graphics.FromImage ( MyImage ) ;
//
获得屏幕的句柄
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 ) ;
//
释放位图句柄
MyImage.Save (
"
c:\\MyJpeg.jpg
"
, ImageFormat.Jpeg ) ;
MessageBox.Show (
"
已经把当前屏幕保存到C:\\MyJpeg.jpg文件中!
"
) ;
this
.Show();
}
}
}
查看全文
相关阅读:
第八周作业
第八周上机练习
第七周作业
第七次上机练习
第六周作业
4.9上机作业
第五周作业
第四次JAVA作业
第四周作业
第十六次作业
原文地址:https://www.cnblogs.com/myx/p/83479.html
最新文章
第八周作业
第八周上机
第七周作业
第七周上机练习
第六周上机作业
第六周上机练习
第五周作业
第四周作业
第二次练习作业
第七次上机作业
热门文章
第六次上机作业
第六周作业
第六周上机作业
第五周上机作业
第四周作业
第二次上机练习
第三周作业
第一次上机作业
第一次java作业
第九周作业
Copyright © 2011-2022 走看看