Code: Select all
Global Dim h(100),n
Procedure tbWindows(hwnd,lParam)
Protected.s title = Space(#MAX_PATH)
If GetWindowLongPtr_(hwnd,#GWL_EXSTYLE) ! #WS_EX_TOOLWINDOW And GetWindowLongPtr_(hwnd,#GWL_STYLE) & #WS_VISIBLE
GetWindowText_(hwnd,title,#MAX_PATH)
If title <> ""
AddGadgetItem(0,-1,title)
h(n) = hwnd
n +1
EndIf
EndIf
ProcedureReturn #True
EndProcedure
OpenWindow(0, 0, 0, 400,400, "Snapshot", #PB_Window_SystemMenu| #PB_Window_ScreenCentered)
ListViewGadget(0,10,10,380,340)
ButtonGadget(1,10,365,60,24,"RUN")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 0
hwnd = h(GetGadgetState(0))
SetWindowPos_(hwnd,#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
wi.WINDOWINFO
wi\cbSize = SizeOf(wi)
GetWindowInfo_(hwnd,wi)
;cap = wi\rcClient\top - wi\rcWindow\top
bord = wi\rcClient\left - wi\rcWindow\left
hBitmap = CreateImage(0,wi\rcWindow\right-wi\rcWindow\left-2*bord+2,wi\rcWindow\bottom-wi\rcWindow\top-bord+1)
hdc = StartDrawing(ImageOutput(0))
SelectObject_(hdc, hBitmap)
BitBlt_(hdc,0,0,wi\rcWindow\right-wi\rcWindow\left-2*bord+2,wi\rcWindow\bottom-wi\rcWindow\top-bord+1, GetDC_(0),wi\rcWindow\left+bord-1,wi\rcWindow\top , #SRCCOPY)
StopDrawing()
ClearClipboard()
SetClipboardImage(0)
SetWindowPos_(hwnd,#HWND_BOTTOM ,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE )
FreeImage(0)
Case 1
ClearGadgetItems(0)
n = 0
ReDim h(100)
EnumChildWindows_(FindWindow_("ToolbarWindow32",0),@tbWindows(),0)
Delay(200)
SetWindowPos_(WindowID(0), #HWND_TOPMOST, 0, 0, 0, 0,#SWP_NOSIZE|#SWP_NOMOVE| #SWP_SHOWWINDOW|#SWP_NOACTIVATE)
EndSelect
EndSelect
Until Quit = 1