我创建了一个具有两个窗口的AIR应用程序。第一个是主窗口(spark windowed application),第二个是组件(spark window)。我使用Java通过Flex-Java Bridge Flerry捕获桌面屏幕。跳过窗口被捕获
这里是捕捉这是屏幕的代码: -
HDC hdcWindow = User32.INSTANCE.GetDC(hWnd);
HDC hdcMemDC = GDI32.INSTANCE.CreateCompatibleDC(hdcWindow);
RECT bounds = new RECT();
User32Extra.INSTANCE.GetClientRect(hWnd, bounds);
int width = bounds.right;
int height = bounds.bottom ;
HBITMAP hBitmap = GDI32.INSTANCE.CreateCompatibleBitmap(hdcWindow, width, height);
HANDLE hOld = GDI32.INSTANCE.SelectObject(hdcMemDC, hBitmap);
GDI32Extra.INSTANCE.BitBlt(hdcMemDC, 0, 0, width, height, hdcWindow, 0, 0, WinGDIExtra.SRCCOPY);
我不想被捕获主Flex窗口。它应该跳过(透明)而不被捕获。
这是可能通过更改Flex项目的配置?
如果不能在flex和java中完成,可以在什么平台上完成?
['SetWindowDisplayAffinity'](https://msdn.microsoft.com/en-us/library/windows/desktop/dd375340.aspx)'(HWND,WDA_MONITOR );' – IInspectable
@Iinspectable SetWindowDisplayAffinity不会跳过窗口被捕获。它只会保护窗口不被捕获。我不想用黑色的屏幕代替那个窗口,我想让它的窗口背面显示出来。 – Vishnu
当你的问题甚至不能远程指定所需的行为时,任何人都应该知道你想要什么?在你的评论中要求的是 - 一般来说 - 不可能的。 – IInspectable