gpt4 book ai didi

c# - 捕捉 MEmu 模拟器屏幕

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:50 25 4
gpt4 key购买 nike

我正在尝试使用一些 win api 捕获 MEmu 模拟器屏幕,但我尝试的所有操作都出现黑屏,屏幕截图的大小正确,但全黑。

这是我现在使用的一些代码:

IntPtr hwnd = Process.GetProcessByName("Memu")[0].MainWindowHandle; //Gets the first process

RECT2 rc;
GetWindowRect(hwnd, out rc);

Bitmap bmp = new Bitmap(rc.Width, rc.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics gfxBmp = Graphics.FromImage(bmp);
IntPtr hdcBitmap = gfxBmp.GetHdc();

PrintWindow(hwnd, hdcBitmap, 1);

gfxBmp.ReleaseHdc(hdcBitmap);
gfxBmp.Dispose();

bmp.Save("test.png");

这是输出图像: Output image from screen capture

看起来 android 在虚拟机(可能是 virtual Box)中运行,不确定这是否是问题所在,是否有办法像这样捕获虚拟屏幕。

最佳答案

看起来您正在使用 BMP 文件格式捕获屏幕。尝试将图像保存为 .bmp 而不是 .png,因为您在代码中将其分类为 BMP。

试试这个:

    IntPtr hwnd = Process.GetProcessByName("Memu")[0].MainWindowHandle; //Gets the first process

RECT2 rc;
GetWindowRect(hwnd, out rc);

Bitmap bmp = new Bitmap(rc.Width, rc.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics gfxBmp = Graphics.FromImage(bmp);
IntPtr hdcBitmap = gfxBmp.GetHdc();

PrintWindow(hwnd, hdcBitmap, 1);

gfxBmp.ReleaseHdc(hdcBitmap);
gfxBmp.Dispose();

bmp.Save("test.bmp");

关于c# - 捕捉 MEmu 模拟器屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36582650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com