Print Screen
Publié : mar. 21/sept./2010 16:33
Il y a-t-il un moyen de capturer l'ecran et l'enregistrer en tant qu'imaqe?
Code : Tout sélectionner
; German forum:
; Author: Unknown (updated for PB 4.00 by Andre)
; Date: 31. December 2002
; OS: Windows
; Demo: No
;Bitmap anlegen
CreateImage(0,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN))
;auf angelegtes Bitmap zeichnen
DC = StartDrawing(ImageOutput(0))
BitBlt_(DC,0,0,ImageWidth(0),ImageHeight(0),GetDC_(GetDesktopWindow_()),0,0,#SRCCOPY )
StopDrawing()
;Bitmap an Fenstergroesse anpassen
ResizeImage(0,640,480)
If OpenWindow(0, 10, 10, 640, 480, "Screenshot", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
StartDrawing(WindowOutput(0))
DrawImage(ImageID(0),0,0)
StopDrawing()
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
End
heu ! apprends a utiliser la touche F1Parole De JOJO a écrit :c'est super mais comment je lenregistre dans lordi en tant kimage
Code : Tout sélectionner
Procedure.s zPrintScreen(FileName.s)
Im=CreateImage(#PB_Any,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN)); create a fullscreen bitmap
hWnd=GetDesktopWindow_()
hDDC=GetDC_(hWnd)
hDC=StartDrawing(ImageOutput(Im))
BitBlt_(hDC,0,0,ImageWidth(Im),ImageHeight(Im),hDDC,0,0,#SRCCOPY)
StopDrawing()
ReleaseDC_(hWnd,hDDC)
;ResizeImage(Im,800,600); image can be resized
If UCase(FileName)="/A"
FileName.s=_PrintScreen+FormatDate("PrintScreen_%yyyy%mm%dd%hh%ii%ss",Date())+".jpg"; _PrintScreen est le répertoire où je stocke mes impression-écrans
EndIf
If UCase(FileName)=""
Input.s=InputRequester("PrintScreen","Save Screen Image As...",_PrintScreen+FormatDate("PrintScreen_%yyyy%mm%dd%hh%ii%ss",Date())+".jpg")
If Input.s=""
FreeImage(Im)
ProcedureReturn ""
EndIf
FileName.s=Input.s
EndIf
UseJPEGImageEncoder()
Result=SaveImage(Im,FileName,#PB_ImagePlugin_JPEG,10)
FreeImage(Im)
If Result
ProcedureReturn FileName.s
Else
ProcedureReturn ""
EndIf
EndProcedure
Code : Tout sélectionner
Global _PrintScreen="C:\Temp\PrintScreen\"; remplacez ce répertoire par le vôtre
zPrintScreen("/A"); ""=prompt, "/A"=automatique, or un nom de fichier valide