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();
}
}
}
查看全文
相关阅读:
PRCR-1065 Failed to stop resource ora.asm 处理
在Oracle Linux上使用DTrace的相关指导
Oracle Listener日志位置及压缩转移
oracle数据库解析json格式
surge for mac出测试版本了
Oracle 12C RAC的optimizer_adaptive_features造成数据插入超时
Oracle执行语句跟踪(2)——使用10046事件实现语句追踪
在Linux上使用web2py_uwsgi_nginx搭建web服务器
Windows server上rsync的安装和使用
Hook原理--逆向开发
原文地址:https://www.cnblogs.com/myx/p/83479.html
最新文章
scrapy配置
scrapy中的下载器中间件
scrapy设置"请求池"
Scrapy中使用cookie免于验证登录和模拟登录
scrapy代理的设置
scrapy架构初探
scrapy初试
Java IO学习笔记七
Java IO学习笔记六
ZCU104搭建Ubuntu桌面系统-1安装Petalinux
热门文章
Ubuntu分区方案
Ubuntu18.04安装NVIDIA显卡驱动
Ubuntu安装exfat工具
Ubuntu系统下制作U盘启动盘
第3章(3) do{}while(0)语句
结构体初始化
第3章(2) Linux下C编程风格
第3章(1) Linux内核相关概念
第2章(2) 接口与总线
Windowns的GVIM添加markdown语法支持
Copyright © 2011-2022 走看看