Screenshot - kein Programm gefunden

Anfängerfragen zum Programmieren mit PureBasic.
startspieler
Beiträge: 3
Registriert: 18.12.2006 12:04
Wohnort: Mainz
Kontaktdaten:

Screenshot - kein Programm gefunden

Beitrag von startspieler »

Hallo,

kann mir jemand helfen ?
Ich möchte gerne ein Programm haben, dass es mir ermöglicht,
einen Screenshot von meinen Spielen zu machen. Also drücke
z.B. F6 und dann Screenshot im Zwischenspeicher .. oder so.

Da ich meine Programme nicht im Windowsfenster starte, habe
ich noch kein Progamm für Screenshots gefunden, das mir hiflt.

Danke für die Hilfe !
Gruß
Michael
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

du kannst so eine funktion auch ganz leicht in dein programm einbauen:

Code: Alles auswählen

If KeyboardReleased(#PB_Key_F12)
  scrnsht=GrabSprite(#PB_Any, 0,0, #screenWidth, #screeHeight)
  SaveSprite(scrnsht, "C:\myGame\screenshots\screenshot001.bmp")
EndIf
my pb stuff..
Bild..jedenfalls war das mal so.
startspieler
Beiträge: 3
Registriert: 18.12.2006 12:04
Wohnort: Mainz
Kontaktdaten:

Alte Version

Beitrag von startspieler »

Leider habe ich eine ganz alte Version 3.30 und er erkennt
(#PB_Any.. nicht. Gibt es auch ein Script für meine Version ?

Aber schon mal danke für die Antwort.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Alte Version

Beitrag von ts-soft »

startspieler hat geschrieben:Leider habe ich eine ganz alte Version 3.30 und er erkennt
(#PB_Any.. nicht. Gibt es auch ein Script für meine Version ?

Aber schon mal danke für die Antwort.

Code: Alles auswählen

If KeyboardReleased(#PB_Key_F12)
  GrabSprite(1, 0, 0, #screenWidth, #screeHeight)
  SaveSprite(1, "C:\myGame\screenshots\screenshot001.bmp")
EndIf
ungetested, mangels Uralt-Basic :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Alte Version

Beitrag von Kiffi »

startspieler hat geschrieben:Leider habe ich eine ganz alte Version 3.30
schreib das bitte in Deine Signatur.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

wenn du es mit konstanten machst, wie ts-soft gezeigt hat, mußt du aber natürlich darauf achten, dass du eine konstante verwendest, die du noch nicht für ein anderes sprite benutzt. der compiler wird dir das nicht sagen, mußt du also selbst sicherstellen.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Game Photographer (Freeware) kann per Knopfdruck einen einzelnen Screenshot machen oder eine Serie von Screenshots (z. B. alle 0.5 Sekunden, einstellbar).
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

was ist mit "NNS screenshot"... kann es sowas?
voreingestellt werden, um ohne dialog per tastendruck einen fremden DX-Screen zu knipsen?
..wenn nicht, wärs ne anregung fürs nächste release..

aber wenn startspieler das für eigene games braucht, ist es eh besser,
das auszufutzeln wie's funktioniert.

[EDIT]
da ich die V3.30 noch drauf hab, hab ich mal rumprobiert.

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"bla")
SetFrameRate(60)
Repeat
  ExamineKeyboard()
  ClearScreen(12,24,48)
  StartDrawing(ScreenOutput())
    FrontColor(255,240,128)
    For n=0 To 100
      Plot(Random(800),Random(600))
    Next
  StopDrawing()
  If KeyboardReleased(#PB_Key_F12) 
    GrabSprite(0, 0,0, 800,600) 
    SaveSprite(0, "C:\screenshot001.bmp") 
  EndIf
  FlipBuffers()
Until KeyboardPushed(#pb_key_escape)
so funktionierts.

wie #NULL sagte, die spritenummer, die du für den screenshot verwendest, sollte natürlich nicht für ein anderes sprite schon benutzt worden sein...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Jo, am besten hierfür eine #Screenshot-Konstante anlegen oder so...
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
startspieler
Beiträge: 3
Registriert: 18.12.2006 12:04
Wohnort: Mainz
Kontaktdaten:

Klappt manchmal ... und manchmal nicht :-)

Beitrag von startspieler »

Hallo,

erstmal vielen Dank für die vielen Tipps.
Habe es mal versucht und merkwürdiger Weise funktioniert
es bei zwei Spielen ganz wunderbar ( Screenshot liegt vor )
bei anderen Spielen wiederrum nicht.

Werde wohl noch etwas herumprobieren müssen.
Bisher habe ich es immer in den Bereich der Tasturbelegung
gelegt.

Code: Alles auswählen

If KeyboardPushed(#PB_Key_Escape)                    
   End                                            
   EndIf
If KeyboardPushed(#PB_Key_F12) 
  GrabSprite(20,0,0,800,600,0) 
  SaveSprite(20, "C:\Dokumente und Einstellungen\M.Fuchs\Eigene Dateien\Screenshot\screenshot001.bmp") 
  EndIf
ForEver 
Gruß
Michael

code-tags gesetzt. bitte in zukunft selber dran denken.
modedit - Kaeru fecit
Antworten