Ik heb hier een halve oplossing...
Code:
Code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long
Dim x As Integer, y As Integer, SrcWidth As Integer, SrcHeight As Integer
Dim hSrcDC As Long, hDestDC As Long
Private Sub Command1_Click()
x = 0
y = 0
SrcWidth = Screen.Width
SrcHeight = Screen.Height
xSrc = 0
ySrc = 0
hDestDC = Picture1.hdc
hSrcDC = GetDC(0)
Picture1.Width = SrcWidth
Picture1.Height = SrcHeight
DoEvents 'Anders wordt screenshot geplakt voordat Picturebox grootte klopt
Call BitBlt(hDestDC, x, y, SrcWidth, SrcHeight, hSrcDC, xSrc, ySrc, &HCC0020)
Call ReleaseDC(0, hSrcDC)
SavePicture Picture1.Image, "C:\\test.bmp"
End Sub
|
ik heb hiervoor een Picturebox met de naam Picture1 en een commandbutton met de naam command1 gebruikt
Alleen om één of andere reden werkt de SavePicture niet goed, er wordt een grijs vlak opgeslagen
De variable:
Code |
1 2 3 4 5 6 7 8
|
x = x postie waar de screenshot in de picturebox komt
y = y postie waar de screenshot in de picturebox komt
SrcWidth = breedte van de screenshot
SrcHeight = hoogte van de screenshot
xSrc = x start positie van de screenshot
ySrc = y start positie van de screenshot
hDestDC = DC van de picturebox
hSrcDC = DC van het item waar de screenshot van gemaakt moet worden (0 = alles)
|