Best FlaUI code snippet using FlaUI.Core.WindowsAPI.Gdi32.BitBlt
Capture.cs
Source:Capture.cs
...74 {75 // Capture directly without any resizing76 bmp = CaptureDesktopToBitmap(bounds.Width, bounds.Height, (dest, src) =>77 {78 Gdi32.BitBlt(dest, outputRectangle.X, outputRectangle.Y, outputRectangle.Width, outputRectangle.Height, src, bounds.X, bounds.Y, CopyPixelOperation.SourceCopy | CopyPixelOperation.CaptureBlt);79 });80 }81 else82 {83 // Capture with scaling84 bmp = CaptureDesktopToBitmap(outputRectangle.Width, outputRectangle.Height, (dest, src) =>85 {86 Gdi32.SetStretchBltMode(dest, StretchMode.STRETCH_HALFTONE);87 Gdi32.StretchBlt(dest, outputRectangle.X, outputRectangle.Y, outputRectangle.Width, outputRectangle.Height, src, bounds.X, bounds.Y, bounds.Width, bounds.Height, TernaryRasterOperations.SRCCOPY | TernaryRasterOperations.CAPTUREBLT);88 });89 }90 return new CaptureImage(bmp, bounds, settings);91 }92 private static Bitmap CaptureDesktopToBitmap(int width, int height, Action<IntPtr, IntPtr> action)...
Gdi32.cs
Source:Gdi32.cs
...12 public static extern IntPtr CreateCompatibleDC(IntPtr hdc);13 [DllImport("gdi32.dll")]14 public static extern IntPtr SelectObject(IntPtr hdc, IntPtr bmp);15 [DllImport("gdi32.dll")]16 public static extern bool BitBlt(IntPtr hdcDest, int xDest, int yDest, int wDest, int hDest, IntPtr hdcSource, int xSrc, int ySrc, CopyPixelOperation rop);17 [DllImport("gdi32.dll")]18 public static extern bool SetStretchBltMode(IntPtr hdc, StretchMode iStretchMode);19 [DllImport("gdi32.dll")]20 public static extern bool StretchBlt(21 IntPtr hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest,22 IntPtr hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc,23 TernaryRasterOperations dwRop);24 [DllImport("gdi32.dll")]25 public static extern IntPtr DeleteDC(IntPtr hDc);26 [DllImport("gdi32.dll")]27 public static extern IntPtr DeleteObject(IntPtr hDc);28 }29#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member30}...
BitBlt
Using AI Code Generation
1using System;2using System.Drawing;3using System.Windows.Forms;4using FlaUI.Core.WindowsAPI;5{6 {7 public Form1()8 {9 InitializeComponent();10 }11 private void button1_Click(object sender, EventArgs e)12 {13 IntPtr desktopWindow = FlaUI.Core.WindowsAPI.User32.GetDesktopWindow();14 IntPtr activeWindow = FlaUI.Core.WindowsAPI.User32.GetForegroundWindow();15 IntPtr activeWindowClientArea = FlaUI.Core.WindowsAPI.User32.GetWindow(activeWindow, FlaUI.Core.WindowsAPI.User32.WindowShowStyle.GetWindowCmd);16 IntPtr activeWindowTitleBar = FlaUI.Core.WindowsAPI.User32.GetWindow(activeWindow, FlaUI.Core.WindowsAPI.User32.WindowShowStyle.GetWindowCmd);17 IntPtr activeWindowMenuBar = FlaUI.Core.WindowsAPI.User32.GetWindow(activeWindow, FlaUI.Core.WindowsAPI.User32.WindowShowStyle.GetWindowCmd);18 IntPtr activeWindowScrollBar = FlaUI.Core.WindowsAPI.User32.GetWindow(activeWindow, FlaUI.Core.WindowsAPI.User32.WindowShowStyle.GetWindowCmd);19 IntPtr activeWindowSizeBox = FlaUI.Core.WindowsAPI.User32.GetWindow(activeWindow, FlaUI.Core.WindowsAPI.User32.WindowShowStyle.GetWindowCmd);20 IntPtr activeWindowMinimizeButton = FlaUI.Core.WindowsAPI.User32.GetWindow(activeWindow, FlaUI.Core.WindowsAPI.User32.WindowShowStyle.GetWindowCmd);21 IntPtr activeWindowMaximizeButton = FlaUI.Core.WindowsAPI.User32.GetWindow(activeWindow, FlaUI.Core.WindowsAPI.User32.WindowShowStyle.GetWindowCmd);22 IntPtr activeWindowCloseButton = FlaUI.Core.WindowsAPI.User32.GetWindow(activeWindow, FlaUI.Core.WindowsAPI.User32.WindowShowStyle.GetWindowCmd);
BitBlt
Using AI Code Generation
1using FlaUI.Core.WindowsAPI;2using System;3using System.Diagnostics;4using System.Drawing;5using System.Drawing.Imaging;6using System.Runtime.InteropServices;7{8 {9 static void Main(string[] args)10 {11 var process = Process.Start("notepad.exe");12 process.WaitForInputIdle();13 var window = FlaUI.Core.Application.GetMainWindow(process);14 var rect = window.Properties.BoundingRectangle;15 var bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);16 using (var g = Graphics.FromImage(bmp))17 {18 var hdc = g.GetHdc();19 var result = Gdi32.BitBlt(hdc, 0, 0, rect.Width, rect.Height, window.GetWindowHandle().DangerousGetHandle(), rect.X, rect.Y, Gdi32.TernaryRasterOperations.SRCCOPY);20 g.ReleaseHdc(hdc);21 }22 bmp.Save("test.png");23 }24 }25}26using FlaUI.Core.WindowsAPI;27using System;28using System.Diagnostics;29using System.Drawing;30using System.Drawing.Imaging;31using System.Runtime.InteropServices;32{33 {34 static void Main(string[] args)35 {36 var process = Process.Start("notepad.exe");37 process.WaitForInputIdle();38 var window = FlaUI.Core.Application.GetMainWindow(process);39 var rect = window.Properties.BoundingRectangle;40 var bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);41 using (var g = Graphics.FromImage(bmp))42 {43 var hdc = g.GetHdc();44 var result = Gdi32.BitBlt(hdc, 0, 0, rect.Width, rect.Height, User32.GetWindowDC(window.GetWindowHandle().DangerousGetHandle()), rect.X, rect.Y, Gdi32.TernaryRasterOperations.SRCCOPY);45 g.ReleaseHdc(hdc);46 }47 bmp.Save("test.png");48 }49 }50}51using FlaUI.Core.WindowsAPI;52using System;53using System.Diagnostics;54using System.Drawing;55using System.Drawing.Imaging;
BitBlt
Using AI Code Generation
1using System;2using System.Drawing;3using System.Windows.Forms;4using FlaUI.Core.WindowsAPI;5{6 {7 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]8 public static extern bool BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, System.Int32 dwRop);9 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]10 public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);11 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]12 public static extern IntPtr CreateCompatibleDC(IntPtr hdc);13 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]14 public static extern IntPtr CreateDC(string lpszDriver, string lpszDevice, string lpszOutput, IntPtr lpInitData);15 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]16 public static extern IntPtr CreateRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);17 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]18 public static extern bool DeleteDC(IntPtr hdc);19 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]20 public static extern bool DeleteObject(IntPtr hObject);21 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]22 public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);23 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]24 public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);25 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]26 public static extern IntPtr CreateDIBSection(IntPtr hdc, ref BITMAPINFO pbmi, uint iUsage, out IntPtr ppvBits, IntPtr hSection, uint dwOffset);27 [System.Runtime.InteropServices.DllImport("gdi32.dll", SetLastError = true)]28 public static extern bool GetDIBits(IntPtr hdc, IntPtr hbm, uint start, uint cLines, IntPtr lpvBits, ref BITMAPINFO lpbmi, uint usage);
BitBlt
Using AI Code Generation
1using System;2using System.Drawing;3using System.Drawing.Imaging;4using System.Windows.Forms;5using FlaUI.Core.WindowsAPI;6using FlaUI.Core.WindowsAPI;7{8 {9 public Form1()10 {11 InitializeComponent();12 }13 private void button1_Click(object sender, EventArgs e)14 {15 var window = FlaUI.Core.Application.GetWindows()[0];16 var rect = window.Properties.BoundingRectangle;17 var bitmap = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);18 var graphics = Graphics.FromImage(bitmap);19 var hdc = graphics.GetHdc();20 Gdi32.BitBlt(hdc, 0, 0, rect.Width, rect.Height, window.Properties.NativeWindowHandle, rect.X, rect.Y, Gdi32.TernaryRasterOperations.SRCCOPY);21 graphics.ReleaseHdc(hdc);22 bitmap.Save("screen.png", ImageFormat.Png);23 }24 }25}26using System;27using System.Drawing;28using System.Drawing.Imaging;29using System.Windows.Forms;30using FlaUI.Core.WindowsAPI;31using FlaUI.Core.WindowsAPI;32{33 {34 public Form1()35 {36 InitializeComponent();37 }38 private void button1_Click(object sender, EventArgs e)39 {40 var rect = Screen.PrimaryScreen.Bounds;41 var bitmap = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);42 var graphics = Graphics.FromImage(bitmap);43 var hdc = graphics.GetHdc();44 Gdi32.BitBlt(hdc, 0, 0, rect.Width, rect.Height, IntPtr.Zero, rect.X, rect.Y, Gdi32.TernaryRasterOperations.SRCCOPY);45 graphics.ReleaseHdc(hdc);46 bitmap.Save("screen.png", ImageFormat.Png);47 }48 }49}
BitBlt
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using System.Drawing;7using System.Drawing.Imaging;8using System.Runtime.InteropServices;9using FlaUI.Core.WindowsAPI;10{11 {12 static void Main(string[] args)13 {14 Bitmap bmp = new Bitmap(100, 100);15 Graphics g = Graphics.FromImage(bmp);16 IntPtr hdc = g.GetHdc();17 Gdi32.BitBlt(hdc, 0, 0, 100, 100, IntPtr.Zero, 0, 0, 0x00CC0020);18 g.ReleaseHdc(hdc);19 g.Dispose();20 bmp.Save(@"C:\temp\2.bmp", ImageFormat.Bmp);21 }22 }23}24using System;25using System.Collections.Generic;26using System.Linq;27using System.Text;28using System.Threading.Tasks;29using System.Drawing;30using System.Drawing.Imaging;31using System.Runtime.InteropServices;32using FlaUI.Core.WindowsAPI;33{34 {35 static void Main(string[] args)36 {37 Bitmap bmp = new Bitmap(100, 100);38 Graphics g = Graphics.FromImage(bmp);39 IntPtr hdc = g.GetHdc();40 User32.BitBlt(hdc, 0, 0, 100, 100, IntPtr.Zero, 0, 0, 0x00CC0020);41 g.ReleaseHdc(hdc);42 g.Dispose();43 bmp.Save(@"C:\temp\3.bmp", ImageFormat.Bmp);44 }45 }46}47using System;48using System.Collections.Generic;49using System.Linq;50using System.Text;51using System.Threading.Tasks;52using System.Drawing;53using System.Drawing.Imaging;54using System.Runtime.InteropServices;55using FlaUI.Core.WindowsAPI;56{57 {58 static void Main(string[] args)59 {60 Bitmap bmp = new Bitmap(100, 100);61 Graphics g = Graphics.FromImage(bmp);62 IntPtr hdc = g.GetHdc();63 Gdi32.BitBlt(hdc, 0, 0, 100, 100, IntPtr.Zero
BitBlt
Using AI Code Generation
1using FlaUI.Core.WindowsAPI;2using System;3using System.Drawing;4using System.Drawing.Imaging;5using System.Runtime.InteropServices;6{7 {8 public static Bitmap CaptureWindow(IntPtr hWnd)9 {10 IntPtr hscrdc = Gdi32.GetDC(hWnd);11 Gdi32.RECT windowRect = new Gdi32.RECT();12 Gdi32.GetWindowRect(hWnd, ref windowRect);13 int width = windowRect.right - windowRect.left;14 int height = windowRect.bottom - windowRect.top;15 IntPtr hbitmap = Gdi32.CreateCompatibleBitmap(hscrdc, width, height);16 IntPtr hmemdc = Gdi32.CreateCompatibleDC(hscrdc);17 IntPtr holdbitmap = Gdi32.SelectObject(hmemdc, hbitmap);18 Gdi32.BitBlt(hmemdc, 0, 0, width, height, hscrdc, 0, 0, Gdi32.SRCCOPY);19 Gdi32.SelectObject(hmemdc, holdbitmap);20 Gdi32.DeleteDC(hmemdc);21 Gdi32.ReleaseDC(hWnd, hscrdc);22 Bitmap img = Image.FromHbitmap(hbitmap);23 Gdi32.DeleteObject(hbitmap);24 return img;25 }26 }27}28using FlaUI.Core.WindowsAPI;29using System;30using System.Drawing;31using System.Drawing.Imaging;32using System.Runtime.InteropServices;33{34 {35 public static Bitmap CaptureWindow(IntPtr hWnd)36 {37 User32.RECT windowRect = new User32.RECT();38 User32.GetWindowRect(hWnd, ref windowRect);39 int width = windowRect.right - windowRect.left;40 int height = windowRect.bottom - windowRect.top;41 Bitmap bmp = new Bitmap(width, height, PixelFormat.Format32bppArgb);42 Graphics memoryGraphics = Graphics.FromImage(bmp);43 IntPtr dc = memoryGraphics.GetHdc();44 User32.PrintWindow(hWnd, dc, 0);45 memoryGraphics.ReleaseHdc(dc);46 return bmp;47 }48 }49}50using FlaUI.Core.WindowsAPI;51using System;52using System.Drawing;
BitBlt
Using AI Code Generation
1using System;2using System.Drawing;3using FlaUI.Core.WindowsAPI;4{5 {6 static void Main(string[] args)7 {8 IntPtr hdc = Gdi32.GetDC(IntPtr.Zero);9 IntPtr hdcMem = Gdi32.CreateCompatibleDC(hdc);10 IntPtr hBitmap = Gdi32.CreateCompatibleBitmap(hdc, 100, 100);11 IntPtr hOld = Gdi32.SelectObject(hdcMem, hBitmap);12 Gdi32.BitBlt(hdcMem, 0, 0, 100, 100, hdc, 100, 100, 0x00CC0020);13 Gdi32.SelectObject(hdcMem, hOld);14 Gdi32.DeleteDC(hdcMem);15 Gdi32.ReleaseDC(IntPtr.Zero, hdc);16 Bitmap bmp = Image.FromHbitmap(hBitmap);17 Gdi32.DeleteObject(hBitmap);18 bmp.Save(@"c:\temp\test.jpg");19 }20 }21}22using System;23using System.Drawing;24using FlaUI.Core.WindowsAPI;25{26 {27 static void Main(string[] args)28 {29 IntPtr hwnd = User32.GetDesktopWindow();30 IntPtr hdcSrc = User32.GetWindowDC(hwnd);31 IntPtr hdcDest = Gdi32.CreateCompatibleDC(hdcSrc);32 IntPtr hBitmap = Gdi32.CreateCompatibleBitmap(hdcSrc, 100, 100);33 IntPtr hOld = Gdi32.SelectObject(hdcDest, hBitmap);34 User32.PrintWindow(hwnd, hdcDest, 0);35 Gdi32.SelectObject(hdcDest, hOld);36 Gdi32.DeleteDC(hdcDest);37 User32.ReleaseDC(hwnd, hdcSrc);38 Bitmap bmp = Image.FromHbitmap(hBitmap);39 Gdi32.DeleteObject(hBitmap);40 bmp.Save(@"c:\temp\test.jpg");41 }42 }43}44using System;45using System.Drawing;46using FlaUI.Core.WindowsAPI;47{48 {49 static void Main(string[] args)50 {51 IntPtr hwnd = User32.GetDesktopWindow();
BitBlt
Using AI Code Generation
1using FlaUI.Core.WindowsAPI.Gdi32;2using System;3using System.Drawing;4using System.Drawing.Imaging;5using System.Windows.Forms;6{7 {8 public Form1()9 {10 InitializeComponent();11 }12 private void btnCapture_Click(object sender, EventArgs e)13 {14 var hwnd = FlaUI.Core.WindowsAPI.WindowsAPI.GetForegroundWindow();15 FlaUI.Core.WindowsAPI.Rect rect;16 FlaUI.Core.WindowsAPI.WindowsAPI.GetWindowRect(hwnd, out rect);17 var bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);18 var dc = Gdi32.GetDC(hwnd);19 var dcMem = Gdi32.CreateCompatibleDC(dc);20 var hBitmap = Gdi32.CreateCompatibleBitmap(dc, rect.Width, rect.Height);21 Gdi32.SelectObject(dcMem, hBitmap);22 Gdi32.BitBlt(dcMem, 0, 0, rect.Width, rect.Height, dc, 0, 0, TernaryRasterOperations.SRCCOPY);23 Gdi32.GetBitmapBits(hBitmap, bmp.Width * bmp.Height * 4, bmp.GetBitmapData());24 bmp.Save("C:\\Temp\\screenShot.png", ImageFormat.Png);25 Gdi32.DeleteDC(dcMem);26 Gdi32.ReleaseDC(hwnd, dc);27 }28 }29}30The code is very simple. The first thing we do is get the handle of the current active window (line 37). Then we get the window rectangle (line 41). We create a bitmap to save the screen shot (line 45). We get the device context for the current active window (line
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!