asp.net如何截屏 fffffffffffff 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在C#案例开发这本书中提到了一个方法using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Drawing.Imaging;namespace zhua2{ /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.SaveFileDialog saveFileDialog1; /// <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 ); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(80, 32); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(112, 24); this.button1.TabIndex = 1; this.button1.Text = "开始抓图"; this.button1.Click += new System.EventHandler(this.button1_Click); // // saveFileDialog1 // this.saveFileDialog1.FileName = "doc1"; this.saveFileDialog1.Filter = "jpg Files(*.jpg)|*.jpg|jpeg Files(*.*)|*.jpeg|bmp Files(*.bmp)|*.bmp"; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(292, 93); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "抓图软件"; this.ResumeLayout(false); } #endregion /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); } //调用动态链接库gdi32.dll [ 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 // 光栅的操作值 ) ; //调用动态链接库gdi32.dll [ 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 ) ; //释放位图句柄 if (saveFileDialog1.ShowDialog () == DialogResult.OK ) { MyImage.Save ( saveFileDialog1.FileName, ImageFormat.Bmp ) ; MessageBox.Show ( "已经把当前屏幕保存!" ) ; this.Show(); } } }} 这个网上挻多的,搜一下。WEB截屏控件:http://www.cnblogs.com/xproer/archive/2010/12/05/1896778.html与FCKEditor2.x整合与CKEditor3.x整合与KindEditor3.x整合与xhEditor1.x整合与Discuz!X2整合-常用工具条与Discuz!X2整合-高级工具条与Discuz!X2整合-弹出截屏选择窗口 楼主试试这个WEB截屏控件:http://www.cnblogs.com/xproer/archive/2010/12/05/1896778.html与FCKEditor2.x整合与CKEditor3.x整合与KindEditor3.x整合与xhEditor1.x整合与Discuz!X2整合-常用工具条与Discuz!X2整合-高级工具条与Discuz!X2整合-弹出截屏选择窗口 如何获取图形文件的颜色模式? 求C#实现Email的读取:主题与附件,最好能给个小Dome,非常感谢! 在一副jpg图像上获取颜色,再把颜色值显示在pixel表面,急,急。 用C#怎样向XML文件中写数据例子 100分求个建议 ★★★ 我该怎么走啊??请大家帮帮忙 ★★★ 定时调用(多线程) 在书上看到这一句: 在武汉的vb.net高手并且想赚外块(5天1500元人民币)的请联系我!QQ:14808015 VC.NET可以写Windows Dos下运行的软件吗?如果不能都可以用什么语言来写? 关于给菜单加上一个图标的问题 什么是接口?接口是用来做什么的? word在线编辑的问题
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing.Imaging;namespace zhua2
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.SaveFileDialog saveFileDialog1;
/// <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 );
} #region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(80, 32);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(112, 24);
this.button1.TabIndex = 1;
this.button1.Text = "开始抓图";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// saveFileDialog1
//
this.saveFileDialog1.FileName = "doc1";
this.saveFileDialog1.Filter = "jpg Files(*.jpg)|*.jpg|jpeg Files(*.*)|*.jpeg|bmp Files(*.bmp)|*.bmp";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 93);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "抓图软件";
this.ResumeLayout(false); }
#endregion /// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
} //调用动态链接库gdi32.dll
[ 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 // 光栅的操作值
) ; //调用动态链接库gdi32.dll
[ 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 ) ;
//释放位图句柄
if (saveFileDialog1.ShowDialog () == DialogResult.OK )
{
MyImage.Save ( saveFileDialog1.FileName, ImageFormat.Bmp ) ;
MessageBox.Show ( "已经把当前屏幕保存!" ) ;
this.Show();
}
}
}
}
与FCKEditor2.x整合与CKEditor3.x整合与KindEditor3.x整合与xhEditor1.x整合与Discuz!X2整合-常用工具条与Discuz!X2整合-高级工具条与Discuz!X2整合-弹出截屏选择窗口
与FCKEditor2.x整合与CKEditor3.x整合与KindEditor3.x整合与xhEditor1.x整合与Discuz!X2整合-常用工具条与Discuz!X2整合-高级工具条与Discuz!X2整合-弹出截屏选择窗口