Open smallfish06 opened 4 years ago
I don't understand the situation you're describing. Could you rephrase?
Depending on what you're talking about, you may find the 'all_screens' argument helpful - https://pillow.readthedocs.io/en/stable/reference/ImageGrab.html#PIL.ImageGrab.PIL.ImageGrab.grab
Also, be aware that you've linked to code from a fork of Pillow, not the main Pillow repository itself.
Sorry for linked to code from a fork of Pillow
https://community.windows.com/en-us/stories/virtual-desktop-windows-10
Windows 10 supports virtual desktop itself. Not the Hyper-V function that we used before.
If i run a script that take a screen shot after 5 seconds, using imagegrab at desktop3 And i change immediately to desktop2
In this case the screenshot is taken in desktop2 even it's running in desktop3
unfortunately even if i use include_layered_windows, all_screens it only takes screenshots of desktop3
Unfortunately, I don't think it is possible to do what you are trying to do. Windows seems to only draw the current desktop, see this Stack Overflow question.
Then I think this problem can be solved with 'screenshot of a specific application'
i successed capturing specific image in other desktop by using this win32gui method. But only if it is visible.
How do you think of implementing 'screenshot of a specific application'?
PrintWindow uses a different mechanism not involving the Desktop Window Manager (which is AFAIK the layer implementing virtual desktops on Windows), so it makes sense that it works for this.
I can see two options for where this could be implemented: ImageGrab
(which currently deals with desktop screenshots and the clipboard for Windows and macOS) and ImageWin
(according to the docs, it seems to be used to draw images directly to HDCs -- Windows Device Contexts). Either way, I expect that the new function would take HWND as a parameter. This would probably be best implemented in C, not with win32gui
.
Is it possible for me to add such C extension on specific part? I mean are there any extension guide or C code repository? I have no idea where to add those codes
windows 10 supports built-in virtual desktop. But when I change desktop from A to B while Pillow process takes screenshot in A, then I get B's screenshot.
The thing i want to know is, was this intended? Cause i don't know well about pillow's goal. If this is not intended, i'm planning to improve window screen grabber
https://github.com/nulano/Pillow/blob/3c311f5619b1b82e2b91cd2a42e3a44b9526755c/src/display.c#L323