using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Windows.Forms;
namespace Test_1
{
class Program
{
[DllImport("gdi32.dll")]
private static extern IntPtr CreateDC(string lpszDriver, string lpszDevice, string lpszOutput, IntPtr lpInitData);
[DllImport("gdi32.dll")]
private static extern bool BitBlt(IntPtr hdcDest,
int nXDest,
int nYDest,
int nWidth,
int nHeight,
IntPtr hdcSrc,
int nXSrc,
int nYSrc,
System.Int32 dwRop);
static void Main(string[] args)
{
IntPtr dc1 = CreateDC("Display", null, null, (IntPtr)null);
Graphics g1 = Graphics.FromHdc(dc1);
Bitmap bmp1 = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, g1);
Graphics bmp2 = Graphics.FromImage(bmp1);
IntPtr screenHandle = g1.GetHdc();
IntPtr imageHandle = bmp2.GetHdc();
BitBlt(imageHandle, 0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, screenHandle, 0, 0, 13369376);
g1.ReleaseHdc();
bmp2.ReleaseHdc();
bmp1.Save("C://aaa.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
实际上,用C#可以简单实现:
Bitmap photo = new Bitmap(1024, 768);
Graphics graphic = Graphics.FromImage(photo);
graphic.CopyFromScreen(0, 0, 0, 0, new Size(1024, 768));
photo.Save(@"c:/aa.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

1179

被折叠的 条评论
为什么被折叠?



