Note that there are some explanatory texts on larger screens.

plurals
  1. POCapture multiple screens desktop image using Qt4
    primarykey
    data
    text
    <p>i am writing a screen capture application in Qt4 with c++. I have a problem when tuning on dual screens. I am unable to get an image with the second screen. I tried a c# application and that will grab all the desktops in one image and i could extract from there each screen desktop image. Here is the c# code</p> <pre><code> using System; using System.Drawing; using System.Runtime.InteropServices; public class TestGrab { [STAThread] static void Main(string[] args) { IntPtr hDC = WindowsNative.GetDC(WindowsNative.GetDesktopWindow()); IntPtr hBitmap = WindowsNative.GetCurrentObject(hDC, WindowsNative.OBJ_BITMAP); System.Drawing.Bitmap imageDesktop = System.Drawing.Image.FromHbitmap( hBitmap); imageDesktop.Save(@"c:\zzzzdesktop.png"); } } public class WindowsNative { [DllImport("user32.dll")] public static extern IntPtr GetDesktopWindow(); [DllImport("user32.dll")] public static extern IntPtr GetDC(IntPtr ptr); public const int OBJ_BITMAP = 7; [DllImport("gdi32.dll")] public static extern IntPtr GetCurrentObject(IntPtr hdc, uint uiObjectType); } </code></pre> <p>The Qt code is smaller,also i tested if the native windows handle to the desktop is different from the Qt desktop0>winId() but them are equal</p> <pre><code>QPixmap CaptureWinDesktop() { WId desktop=GetDesktopWindow(); WId desktop2=QApplication::desktop()-&gt;winId(); if(desktop!=desktop2) { qDebug("sunt fdiferite WId"); } QPixmap entireDesktop= QPixmap::grabWindow(desktop); return entireDesktop; } </code></pre> <p>I am not sure if this is a bug in Qt or is a feature, using the same window handle it retries only the first desktop when in fact the desktop it is relay composed from the 2 screens . One idea is to use native windows calls and save the image in a temp file and load a QPixmap from there, but that is not simple to save a HBITMAP in a file in c++ without MFC. Conclusion: what do you think is that a bug in Qt? any idea how to work around it(no MFC )</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload