读书人

跪求 c# wince停的截屏源代码

发布时间: 2013-07-11 15:38:46 作者: rapoo

跪求 c# wince下的截屏源代码?
c# 创建一个基于wince的窗体,实现截取当前wince设备屏幕的功能,我是一个初学者还请c#牛人多多帮助!
[解决办法]
获取屏幕的图片


Image screenImg = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
using (Graphics g = Graphics.FromImage(screenImg))
{
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
}



然后用gdi+,自己喜欢怎么画,怎么截图都可以了!
[解决办法]

using System.Runtime.InteropServices;
using DWORD = System.UInt32;
using HANDLE = System.IntPtr;
using HDC = System.IntPtr;
[DllImport("coredll.dll")]
public static extern bool BitBlt(
IntPtr hdcDest,
int nXDest,
int nYDest,
int nWidth,
int nHeight,
IntPtr hdcSrc,
int nXSrc,
int nYSrc,
System.Int32 dwRop);
public static void PickPho()
{
//IntPtr dc1 = API.CreateDC("DISPLAY", null, null, (IntPtr)null);

//创建显示器的DC

Graphics g1 = Graphics.FromHdc(dc1);

//由一个指定设备的句柄创建一个新的Graphics对象

Bitmap MyImage = new Bitmap(800, 480);



//Bitmap My=new Bitmap(

//根据屏幕大小创建一个与之相同大小的Bitmap对象

Graphics g2 = Graphics.FromImage(MyImage);

//获得屏幕的句柄

IntPtr dc3 = g1.GetHdc();

//获得位图的句柄

IntPtr dc2 = g2.GetHdc();

//把当前屏幕捕获到位图对象中

BitBlt(dc2, 0, 0, 800, 480, dc3, 0, 0, 13369376);

//把当前屏幕拷贝到位图中

g1.ReleaseHdc(dc3);

//释放屏幕句柄

g2.ReleaseHdc(dc2);



//释放位图句柄
int i = 0;
try
{
while (File.Exists(@"D/" + i.ToString() + ".bmp"))
{
i++;
}
MyImage.Save(@"D/" + i.ToString() + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
}
catch
{ }
}

读书人网 >C#

热点推荐