What is the problem can be?
[Windows 10, Unicode mode, threadSafe, PB 5.31 x64]
Code: Select all
Procedure capturescreen(i)
Protected srcDC, trgDC, BMPHandle.l, dm.DEVMODE, hDC, resultImg = 0, bitBlt, outputId, ScreenWidth, ScreenHeight, wx, wy, ci.CURSORINFO
Protected xpos, ypos
Repeat
ScreenWidth = GetSystemMetrics_(#SM_CXSCREEN)
ScreenHeight = GetSystemMetrics_(#SM_CYSCREEN)
If wx<>ScreenWidth Or wy<>ScreenHeight
wx = ScreenWidth
wy = ScreenHeight
If IsImage(0)
FreeImage(0)
EndIf
If Not CreateImage(0, ScreenWidth, ScreenHeight, 24)
Break
EndIf
EndIf
srcDC = GetDC_(#Null);CreateDC_("DISPLAY", "", "", #Null)
trgDC = CreateCompatibleDC_(srcDC)
BMPHandle = CreateCompatibleBitmap_(srcDC, ScreenWidth, ScreenHeight)
SelectObject_( trgDC, BMPHandle)
bitBlt = BitBlt_(trgDC, 0, 0, ScreenWidth, ScreenHeight, srcDC, 0, 0, #SRCCOPY)
hDC = StartDrawing(ImageOutput(0) )
DrawImage(BMPHandle, 0, 0)
ci\cbSize = SizeOf(CURSORINFO)
GetCursorInfo_(@ci)
xpos = ci\ptScreenPos\x
ypos = ci\ptScreenPos\y
GetIconInfo_(ci\hCursor, iconinfo.ICONINFO)
DrawIconEx_(hDC, xpos - iconinfo\xHotspot ,ypos - iconinfo\yHotspot, ci\hCursor, 32, 32, 0, 0, #DI_NORMAL|#DI_COMPAT )
StopDrawing()
CopyImage(0, 5)
ResizeImage(5, 580 , 580)
SetGadgetAttribute(0, #PB_Canvas_Image , ImageID(5))
FreeImage(5)
DeleteObject_(trgDC)
ReleaseDC_(BMPHandle, srcDC)
ReleaseDC_(#Null, srcDC)
DeleteObject_(BMPHandle)
Delay(50)
ForEver
If IsImage(0)
FreeImage(0)
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 600, 600, "CaptureScreenInUnicodeMode", #PB_Window_SystemMenu | #PB_Window_ScreenCentered |#PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
CanvasGadget(0, 10, 10, 580, 580)
CreateThread(@capturescreen(),0)
Repeat
Event = WindowEvent()
Delay(10)
Until Event = #PB_Event_CloseWindow
EndIf



