养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

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

时间:2024-11-10 17:32:19

在C#中,通过引用Win32Api实现窗口截图的功能。

工具/原料

VS2013(其他版本亦可)。

方法/步骤

1、启动VS2013,新建C#->WinForm项目,命名为Cs窗口截图,如下图:

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

2、在窗体中添加控件并布局,如下图:

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

3、添加Win32Api引用,源代码见参考资料。

4、添加PrtWnd类,用于截取给定句柄的窗口,代码:pub盟敢势袂licclassPrtWnd{publicstat足毂忍珩icBitmapPrtWindow(IntPtrhWnd){IntPtrhscrdc=Win32Api.GetWindowDC(hWnd);Win32Api.RECTrect;Win32Api.GetWindowRect(hWnd,outrect);IntPtrhbitmap=Win32Api.CreateCompatibleBitmap(hscrdc,rect.right-rect.left,rect.bottom-rect.top);IntPtrhmemdc=Win32Api.CreateCompatibleDC(hscrdc);Win32Api.SelectObject(hmemdc,hbitmap);Win32Api.PrintWindow(hWnd,hmemdc,0);Bitmapbmp=Bitmap.FromHbitmap(hbitmap);Win32Api.DeleteDC(hscrdc);Win32Api.DeleteDC(hmemdc);returnbmp;}}

5、在Form1的Btton单击事件中添加代码:privatevoidbutton龀音孵茧1_Click(o芟鲠阻缒bjectsender,EventArgse){IntPtrhandle=IntPtr.Zero;try{handle=Win32Api.FindWindow(null,textBox1.Text);PB.Image=PrtWnd.PrtWindow(handle);}catch(Exception){MessageBox.Show("悲剧……可能哪里出错了。|"+handle.ToString());}}

6、调试运行,结果如下图:

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

© 一点知识