无视最小化和遮挡窗口; 关闭窗口的最小化按钮
对该句柄窗口进行截图:
private IntPtr WindowIntptr;
WindowIntptr = this.Handle;
//TestBox.Text = new WindowInteropHelper(this).Handle.ToString();//获取句柄ID
//var windowIntPtr = new IntPtr(1774674);//直接实例化句柄
//窗口句柄
private Image GetWindowImage(IntPtr windownHandle)
{
Control control = Control.FromHandle(windownHandle);
Bitmap image = new Bitmap(control.Width, control.Height);
Graphics gp = Graphics.FromImage(image);
IntPtr dc = gp.GetHdc();
PrintWindow(windownHandle, dc, 0);
gp.ReleaseHdc();
gp.Dispose();
string path = $@"D:\日志\{DateTime.Now.ToString("HH-mm-ss")}.jpg";
//string path = $@"D:\日志\12345678.jpg";
image.Save(path);
return image;
}
[DllImport("user32.dll")]
public static extern bool PrintWindow(IntPtr hwnd, IntPtr hdcBlt, UInt32 nFlags);
对当前屏幕进行截图:
try
{
Screen screen = Screen.AllScreens.FirstOrDefault();
Rectangle rc = new Rectangle(0, 0, Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);
Bitmap bitmap = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);
using (Graphics memoryGrahics = Graphics.FromImage(bitmap))
{
memoryGrahics.CopyFromScreen(rc.X, rc.Y, 0, 0, rc.Size, CopyPixelOperation.SourceCopy);//对屏幕指定区域进行图像复制
}
bitmap.Save("D://TempImage.png", ImageFormat.Png);
}
catch (Exception ex)
{
this.tbFTPtset.Text += $"生成图片失败{ex.Message}\r\n";
}