怎样使用C#进行窗口截图

 我来答
盘默M2
2016-05-07 · TA获得超过2.9万个赞
知道大有可为答主
回答量:9723
采纳率:93%
帮助的人:8256万
展开全部
1、启动VS2013,新建C#->WinForm项目,命名为Cs窗口截图,

2、在窗体中添加控件并布局,

3、添加Win32Api引用,
4、添加PrtWnd类,用于截取给定句柄的窗口,代码:
public class PrtWnd
{
public static Bitmap PrtWindow(IntPtr hWnd)
{
IntPtr hscrdc =Win32Api.GetWindowDC(hWnd);
Win32Api.RECT rect;
Win32Api.GetWindowRect(hWnd,out rect);
IntPtr hbitmap =Win32Api.CreateCompatibleBitmap(hscrdc, rect.right-rect .left , rect .bottom -rect .top );
IntPtr hmemdc =Win32Api.CreateCompatibleDC(hscrdc);
Win32Api.SelectObject(hmemdc, hbitmap);
Win32Api. PrintWindow(hWnd, hmemdc, 0);
Bitmap bmp = Bitmap.FromHbitmap(hbitmap);
Win32Api .DeleteDC(hscrdc);
Win32Api.DeleteDC(hmemdc);
return bmp;
}
}
5、在Form1的Btton单击事件中添加代码:
private void button1_Click(object sender, EventArgs e)
{
IntPtr handle=IntPtr .Zero ;
try
{
handle = Win32Api.FindWindow(null, textBox1.Text);
PB.Image = PrtWnd.PrtWindow(handle);
}
catch (Exception)
{
MessageBox.Show("悲剧……可能哪里出错了。|"+handle .ToString());
}
}
6、调试运行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式