Ik probeer in VB6 het window van een tweede applicatie (namelijk Internet Explorer) te capturen naar een picturebox. De volgende code heb ik geprobeerd:
Nou werkt dit wel aardig, maar de tweede applicatie dient altijd op de voorgrond te staan, anders krijg je namelijk stukken van de overlappende windows te zien.
Vervolgens heb ik (na het lezen van dit artikel) de volgende code geprobeerd:
...maar nu krijg ik een lege picturebox! Weet iemand misschien een andere manier, of wat ik hier fout doe?
code:
1
2
3
4
5
6
7
8
| Dim WithEvents IE As InternetExplorer
Dim hIEDC As Long
Set IE = CreateObject("InternetExplorer.Application.1")
IE.Visible = True
hIEDC = GetDC(IE.hwnd)
BitBlt Picture1.hdc, 0, 0, IE.Width, IE.Height, hIEDC, 0, 0, &HCC0020
ReleaseDC 0&, hIEDC |
Nou werkt dit wel aardig, maar de tweede applicatie dient altijd op de voorgrond te staan, anders krijg je namelijk stukken van de overlappende windows te zien.
Vervolgens heb ik (na het lezen van dit artikel) de volgende code geprobeerd:
code:
1
2
3
4
5
6
| Private Const WM_PAINT = &HF Private Const WM_PRINT = &H317 Dim rv As Long rv = SendMessage(IE.hwnd, WM_PAINT, Picture1.hdc, 0) rv = SendMessage(IE.hwnd, WM_PRINT, Picture1.hdc, PRF_CHILDREN + PRF_CLIENT + PRF_OWNED) |
...maar nu krijg ik een lege picturebox! Weet iemand misschien een andere manier, of wat ik hier fout doe?