Просмотров: 1255 | Дата: 02.05.2024 | Коментарии (0)

Скриншот экрана




Программа для создания скриншотов рабочего окна или всего экрана, в формате PNG или BMP

Для создания скрина одного окна - выделить его и нажать PrintScreen...
Для создания скрина всего пространства рабочего стола - кликнуть по нему и нажать PrintScreen...
Скачать архив

Код реализации для версии PB 4.40 :

Code
;---------------------------Программа для снятия скриншотов-----------------------------
;
; PureBasic 4.40
;
; (с) 2009 - mirashic
;
;---------------------------------------------------------------------------------------
Enumeration
  #Window_0
EndEnumeration
Enumeration
  #Image_1
EndEnumeration
InitSound()
UsePNGImageDecoder()

UsePNGImageEncoder()

CatchSound(0,?IB1,?IB2-?IB1)
CatchImage(10, ?Im, ?ImEnd -?Im)

;SP.s=Space(255)
;GetSystemDirectory_(SP,255)
OpenWindow(#Window_0, 0, 0, 400, 150, "Скриншот", #PB_Window_MinimizeGadget| #PB_Window_ScreenCentered)
  SetWindowColor(0, $ffffff)
  ImageGadget(#Image_1,260,0,0,0,ImageID(10))

CheckBoxGadget(1, 25, 120, 14, 14, "")
TextGadget (2, 60, 120, 80, 15,"Формат: png")
TextGadget (3,30,15,250,15,"Проггамма для создания скриншотов")
TextGadget (4,45,35,200,15," в формате PNG и BMP")
TextGadget (5,25,65,200,15,"Выдели активное окно или экран")
TextGadget (6,25,85,200,15,"Нажми - Pint Screen")

For h=1 To 6
  SetGadgetColor(h, #PB_Gadget_FrontColor, RGB(53, 53, 53)) ;цвет
  SetGadgetColor(h, #PB_Gadget_BackColor, $ffffff) ;фон
Next h

  a.s= ".png"
  b= #PB_ImagePlugin_PNG

Repeat
Event= WaitWindowEvent(10)
Window=EventWindow()
Gadget=EventGadget()

;-------------------------------------------------------------
If Event=#PB_Event_Gadget And Gadget=1
Ptihka=GetGadgetState(1)
If Ptihka=0
  a.s=".png"
  b=#PB_ImagePlugin_PNG
SetGadgetText(2,"Формат: png")
Else
  a.s=".bmp"
  b=#PB_ImagePlugin_BMP
  CaptureFullScreen()
SetGadgetText(2,"Формат: bmp")
EndIf
EndIf

If GetAsyncKeyState_(#VK_SNAPSHOT) = -32767
  If CaptureWindow(ForegroundWindowGet())
  PlaySound(0,0)
  SaveCapture(""+ FormatDate("%hh_%ii_%ss", Date())+a.s, b, 0)
  EndIf
EndIf

If Event=#PB_Event_CloseWindow
Break
EndIf
ForEver

DataSection
IB1:
IncludeBinary "файлы программы/sound.wav"
IB2:
Im:
IncludeBinary "файлы программы/Camera.png"
ImEnd:
EndDataSection



Программа скриншот с минимум кода :

Code
UsePNGImageEncoder()
SP.s=Space(255)
GetSystemDirectory_(SP,255)
W=OpenWindow(0,1,1,1,1,"shot",#PB_Window_Invisible)
AddSysTrayIcon(1, W,ExtractIcon_(0,SP+"\SetupAPI.dll",22))
SysTrayIconToolTip(1, "Exit")
Repeat
  If WaitWindowEvent(10) = #PB_Event_SysTray
  If EventType()=#PB_EventType_RightClick:Break:EndIf
  EndIf
If GetAsyncKeyState_(#VK_SNAPSHOT) = -32767
  If CaptureFullScreen()
  SaveCapture("C:\"+ FormatDate("%hh_%ii_%ss", Date())+".png", #PB_ImagePlugin_PNG, 0)
  EndIf
EndIf
ForEver


http://purebasic.info/phpBB2/viewtopic.php?t=971












Сайт посвящён языку программирования PureBasic — коммерческий компилятор языка программирования, использующего синтаксис BASIC. Предназначен для создания кроссплатформенных приложений для AmigaOS, Linux, Microsoft Windows, Windows NT и Mac OS X. Разработан компанией Fantaisie Software.