Screenshots d'un jeu
Screenshots d'un jeu
Bonjour,
J'aimerais faire un petit programme qui fasse des screenshots à répétition d'un jeu qui se lance en plein écran.
J'ai éssayé avec l'api GetDesktopWindow, mais évidemment ca ne marche pas puisque ca capture le bureau windows...
Est-ce que vous savez si c'est faisable facilement ?
J'aimerais faire un petit programme qui fasse des screenshots à répétition d'un jeu qui se lance en plein écran.
J'ai éssayé avec l'api GetDesktopWindow, mais évidemment ca ne marche pas puisque ca capture le bureau windows...
Est-ce que vous savez si c'est faisable facilement ?
Quelques manoucheries : I can't give you anything but love / Stompin' at decca
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Re: Screenshots d'un jeu
Arf j'ai essayé ça mais au moment de prendre la capture il retourne sur le bureau.
Code : Tout sélectionner
UseJPEGImageEncoder()
Procedure CaptEcran (Destination$ , LargSortie, HautSortie)
EcranX.i = GetSystemMetrics_(#SM_CXSCREEN)
EcranY.i = GetSystemMetrics_(#SM_CYSCREEN)
Debug EcranX
Im = CreateImage(1, EcranX, EcranY)
If Im = 0
ProcedureReturn 0
Else
Debug Destination$+FormatDate("LDVM_%yyyy%mm%dd%hh%ii%ss",Date())+".jpg"
Debug Im
hWnd = GetDesktopWindow_()
hDDC = GetDC_(hWnd)
hDC = StartDrawing(ImageOutput(1))
BitBlt_(hDC,0,0,ImageWidth(1),ImageHeight(1),hDDC,0,0,#SRCCOPY)
StopDrawing()
ReleaseDC_(hWnd,hDDC)
If LargSortie = 0 Or HautSortie = 0 Or Str(LargSortie) = "" Or Str(HautSortie) = ""
ResizeImage(Im, EcranX, EcranY)
If LargSortie <> EcranX Or HautSortie <> EcranY
ResizeImage(Im, LargSortie, HautSortie)
EndIf
EndIf
Result = SaveImage(1, Destination$+FormatDate("LDVM_%yyyy%mm%dd%hh%ii%ss",Date())+".jpg",#PB_ImagePlugin_JPEG,8)
FreeImage(1)
If Result <> 0
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndIf
EndProcedure
Delay(8000) ; histoire d'avoir le temps de retourner dans le jeu pour tester.
Test = CaptEcran("C:\",800,600)
; Si résultat = 1 alors ça a marché sinon resultat = 0
Debug Test
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Screenshots d'un jeu
bonjour bombseb
peut être que si tu faisais une recherche "screenshot" sur le forum..
Enfin en voilà une, Qui peut être va te donner des idées.
http://www.purebasic.fr/french/viewtopi ... 1462&hilit
Cordialement
peut être que si tu faisais une recherche "screenshot" sur le forum..

Enfin en voilà une, Qui peut être va te donner des idées.
http://www.purebasic.fr/french/viewtopi ... 1462&hilit
Cordialement
Re: Screenshots d'un jeu
Salut, merci pour vos réponses
Apparement l'api GetDesktopWindow sert uniquement à capturer le bureau avec les applications ouvertes
Je pense qu'il faut bidouiller en directx pour faire ca...
Edit : J'ai peut être oublié de vous préciser que le jeux dont je veux faire des captures ouvre un écran directx en plein écran...
Ben non, car je voudrais faire des copies d'écran à répétition et que ca me les sauve dans des fichiers bmp....tout ca automatiquement bien sur....et avec la touche Imp Ecran ?
Apparement l'api GetDesktopWindow sert uniquement à capturer le bureau avec les applications ouvertes
Je pense qu'il faut bidouiller en directx pour faire ca...
Edit : J'ai peut être oublié de vous préciser que le jeux dont je veux faire des captures ouvre un écran directx en plein écran...
Quelques manoucheries : I can't give you anything but love / Stompin' at decca
Re: Screenshots d'un jeu
Et sinon FRAPS ?
Ce qu'a dit JB n'est pas si idiot que ça.
Si en PB tu simules le clique "Impr Ecran" (surement via l'API SendMessage_ ), tu devrais pouvoir ensuite sauver (GetClipboardImage) l'image en Jpeg et recommencer l'opération toutes les x secondes avec une simple boucle...
Vu que imprim Ecran permet des captures même de jeu ça devrait marcher.
Ce qu'a dit JB n'est pas si idiot que ça.
Si en PB tu simules le clique "Impr Ecran" (surement via l'API SendMessage_ ), tu devrais pouvoir ensuite sauver (GetClipboardImage) l'image en Jpeg et recommencer l'opération toutes les x secondes avec une simple boucle...
Vu que imprim Ecran permet des captures même de jeu ça devrait marcher.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Screenshots d'un jeu
il y a pas mal de jeu maintenant dans lesquels imp ecran est géré par le jeu lui même. Essaie de faire un screen lol ^^
c'est pas géré.
J'avais vu un truc sur le fofo anglais pour dessiner dans l'ecran graphique du jeu, après la 3D, il doit être possible de copier ce qui est à l'écran. Mais cela impliquait des injections de dll etc... ca relève du niveau de fraps là !
c'est pas géré.
J'avais vu un truc sur le fofo anglais pour dessiner dans l'ecran graphique du jeu, après la 3D, il doit être possible de copier ce qui est à l'écran. Mais cela impliquait des injections de dll etc... ca relève du niveau de fraps là !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: Screenshots d'un jeu
Si ton jeu est fait avec PB, un simple
devrait le faire
Code : Tout sélectionner
u = GrabSprite(#PB_Any, 0, 0, 1024, 768)
SaveSprite(u, "c:\screenshot.bmp")
Re: Screenshots d'un jeu
directx 9 endscene hook
Source de l'information
Et un tuto en anglais qui détaille le principe
http://spazzarama.wordpress.com/2010/03 ... api-hooks/
Source de l'information
Et un tuto en anglais qui détaille le principe
http://spazzarama.wordpress.com/2010/03 ... api-hooks/
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Re: Screenshots d'un jeu
Merci, c'est exactement ca qui me fallait, mais bon ca à l'air trop compliqué, je laisse tomber
l'idée c'était de faire des screenshot à répétitions pour pouvoir ripper les sprites d'un jeu facilement...

l'idée c'était de faire des screenshot à répétitions pour pouvoir ripper les sprites d'un jeu facilement...
Quelques manoucheries : I can't give you anything but love / Stompin' at decca
Re: Screenshots d'un jeu
oui comme dit Ar-S,
via PB tu simule la touche imprime ecrant tout les x seconde via l'API je pense que ça peut le faire
voici un post j'ai pas de PB sous la main pour tester mais tu doit trouver sa sur le forum.
@++
via PB tu simule la touche imprime ecrant tout les x seconde via l'API je pense que ça peut le faire
voici un post j'ai pas de PB sous la main pour tester mais tu doit trouver sa sur le forum.
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz