Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Как программно сделать копию экрана?


Автор: Deiv 11.2.2003, 19:31
Подскажите пожалуйста, как можно из программы сделать копию экрана (по типу Print Screen). SendKeys в этом случае не работает. Может через API? Или может есть какая-нибудь готовая программка.

Автор: stab 12.2.2003, 02:38
Public Declare Function GetDC Lib "user32" (hWnd As Integer) As Integer
Public Declare Sub ReleaseDC Lib "user32" (hDC As Integer)
Public Declare Sub BitBlt Lib "gdi32" (hdcDest As Integer, nXDest As Integer, nYDest As Integer, nWidth As Integer, nHeight As Integer, hdcSrc As Integer, nXSrc As Integer, nYSrc As Integer, dwRop As Integer)

Const SRCCOPY = &H00CC0020

...

sdc = GetDC(0)
wdc = GetDC(Me.hWnd)
BitBlt wdc, 0, 0, Screen.Width, Screen.Height, sdc, 0, 0, SRCCOPY
ReleaseDC sdc
ReleaseDC wdc

Автор: Unregistered 13.2.2003, 19:36
cully, спасибо.

Автор: Wolfer1 15.2.2003, 11:42
Private Declare Function GetDestktopWindow Lib "user32" () As Long
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 Sub Form_Load()
dwRop = &HCC0020
hSrcDC = GetDC(hwndSrc)
Call BitBlt(hDC, 0, 0, ScaleWidth, ScaleHeight, hSrcDC, 0, 0, dwRop)
Show

End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)