Screenshot
-
- Beiträge: 282
- Registriert: 03.01.2005 11:36
Screenshot
Hallo und guten Abend!
Beispiele für Screenshot habe ich einige gefunden. Nur das das ganze passt nicht so recht auf mein Problem.
Was möchte ich?
Wenn ich die Taste F12 drücke soll ein Screenshot gemacht und gespeichert werden. Wenn ich nochmal auf F12 drüche soll ein weiteres gemacht werden aber nicht als getrenntes Bild gespeichert sondern in einer datei. Also sozusagen in einem Bild in dem 2 drin sind. Und beim dritten druck auf F12 sollts so weitergehen.
Wie mache ich das am einfachsten.
Martin
Beispiele für Screenshot habe ich einige gefunden. Nur das das ganze passt nicht so recht auf mein Problem.
Was möchte ich?
Wenn ich die Taste F12 drücke soll ein Screenshot gemacht und gespeichert werden. Wenn ich nochmal auf F12 drüche soll ein weiteres gemacht werden aber nicht als getrenntes Bild gespeichert sondern in einer datei. Also sozusagen in einem Bild in dem 2 drin sind. Und beim dritten druck auf F12 sollts so weitergehen.
Wie mache ich das am einfachsten.
Martin
Re: Screenshot
1. Erstelle eine Tastenabfrage
2. und wenn die F12-Taste gedrückt wurde, dann erstelle ein Screenshot. Du sagtest ja, du hast ja bereits Beispielcodes gefunden.
3.1. Wenn es das erste Mal ist, dann erstelle ein Bild (CreateImage()) und füg dort dein Screenshot ein und speichere es (SaveImage()).
3.2. Ansonsten lade das vorhandene Bild (LoadImage()) und ermittle die Bildbreite (ImageWidth()), um ab der x. Position dein Screenshot einzufügen (DrawImage()).
Reicht dir diese kurze Beschreibung oder brauchst du ein Beispielcode?
2. und wenn die F12-Taste gedrückt wurde, dann erstelle ein Screenshot. Du sagtest ja, du hast ja bereits Beispielcodes gefunden.
3.1. Wenn es das erste Mal ist, dann erstelle ein Bild (CreateImage()) und füg dort dein Screenshot ein und speichere es (SaveImage()).
3.2. Ansonsten lade das vorhandene Bild (LoadImage()) und ermittle die Bildbreite (ImageWidth()), um ab der x. Position dein Screenshot einzufügen (DrawImage()).
Reicht dir diese kurze Beschreibung oder brauchst du ein Beispielcode?
Re: Screenshot
Was bitte soll der Sinn davon dein?Wenn ich nochmal auf F12 drüche soll ein weiteres gemacht werden aber nicht als getrenntes Bild gespeichert sondern in einer datei. Also sozusagen in einem Bild in dem 2 drin sind. Und beim dritten druck auf F12 sollts so weitergehen.
Wenn ich nun 10 mal auf F12 drücke, dann werden alle Screens in ein Bild gespeichert was dann (10*1920)x1080 droß ist also 19200x1080 ??
Wie ich das kenne, werden die gemachten Screens fortlaufend nummeriert und in einen Ordner gespeichert, aber nicht alle in ein Bild

PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
- Beiträge: 282
- Registriert: 03.01.2005 11:36
Re: Screenshot
Vielen Dank an euch beide!
Am liebsten würde ich die scrennshots bei jedem Tastendruck in z.B. in ein Worddokument oder pdf-Dokument hintereinander einfügen.
Wenn es dazu ein Beispiel geben würde, das wäre toll.
Grüße
martin
Am liebsten würde ich die scrennshots bei jedem Tastendruck in z.B. in ein Worddokument oder pdf-Dokument hintereinander einfügen.
Wenn es dazu ein Beispiel geben würde, das wäre toll.
Grüße
martin
Re: Screenshot
Moin!
Word ist Müll. Wenn schon so'n Klimmzug, dann LibreOffice Writer (ist'n - glaube ich - gezipptes XML) oder PDF. Purebasic unterstützt aber beide Formate nicht nativ, weshalb Du selber 'ranmüßtest mit programmieren.
Wennste wirklich Bilder in einer Bilddatei haben wolltest, müßtest Du ein Format mit Ebenen nehmen. GIF ist nicht besonders sinnvoll für Bildschirmkopien, XCF schon eher. Leider versteht so gut wie kein Programm außer GIMP selbst das XCF.
Da wir nicht wissen, was Du mit dem Ergebnis anfangen willst, bleibt es erstmal dabei, selbst eine Entscheidung zu treffen, welches Format Du brauchst.
Gruß - WPö
Word ist Müll. Wenn schon so'n Klimmzug, dann LibreOffice Writer (ist'n - glaube ich - gezipptes XML) oder PDF. Purebasic unterstützt aber beide Formate nicht nativ, weshalb Du selber 'ranmüßtest mit programmieren.
Wennste wirklich Bilder in einer Bilddatei haben wolltest, müßtest Du ein Format mit Ebenen nehmen. GIF ist nicht besonders sinnvoll für Bildschirmkopien, XCF schon eher. Leider versteht so gut wie kein Programm außer GIMP selbst das XCF.
Da wir nicht wissen, was Du mit dem Ergebnis anfangen willst, bleibt es erstmal dabei, selbst eine Entscheidung zu treffen, welches Format Du brauchst.
Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Screenshot
Man könnte auch unter Windows einen PDF-Druckertreiber nehmen und die Bilder einfach in ein PDF drucken.
Unter Linux könnte man das ImageMagick Paket installiert und dann mit 'convert' Bilder in ein PDF konvertieren.
Unter Linux könnte man das ImageMagick Paket installiert und dann mit 'convert' Bilder in ein PDF konvertieren.
-
- Beiträge: 282
- Registriert: 03.01.2005 11:36
Re: Screenshot
hallo NicTheQuick!
genau das suche ich. Nur wie geht das? Ich habe Adobe als PDF-Erstellungsprogramm.
Grüße
Martin
genau das suche ich. Nur wie geht das? Ich habe Adobe als PDF-Erstellungsprogramm.
Grüße
Martin
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Screenshot
Du gehst auf Google und suchst "pdf drucker windows" und findest unter anderem diese beiden hübschen Links:
PDFCreator und Free PDF 4.
Wie man jetzt unter Purebasic druckt ist aber wieder ein anderes Thema.
PDFCreator und Free PDF 4.
Wie man jetzt unter Purebasic druckt ist aber wieder ein anderes Thema.
-
- Beiträge: 282
- Registriert: 03.01.2005 11:36
Re: Screenshot
Hallo Nic,
den PDFCreator kenne ich und habe ich auch schon verwendet. Da ich aber eine "Alte" Version von Adobe bekommen hatte, benutze ich diese im Moment.
den PDFCreator kenne ich und habe ich auch schon verwendet. Da ich aber eine "Alte" Version von Adobe bekommen hatte, benutze ich diese im Moment.
-
- Beiträge: 282
- Registriert: 03.01.2005 11:36
Re: Screenshot
Hallo!
Folgenden Code habe ich im Forum gefunden. Lediglich in der Repeat-Schleife habe ich ein paar Zeilen hinzugefügt. Nun wird bei jedem Tastendruck ein Screenshot gemacht und als Bild gespeichert. Das ganz funktioniert bestens auf meinem Rechner (Win7). Doch wenn ich nun der Compilierten Code auf einem anderen Rechner Starte (Windows XP Rechner im Büro), hängt sich das Programm auf. Aber warum?
Wenn ich nun bei jedem Tastendruck das Bild in ein PDF-Dokument anhängen könnte oder bei Programmende alle Bilder zusammen in ein PDF-einbinden könnte wäre das optimal.
Folgenden Code habe ich im Forum gefunden. Lediglich in der Repeat-Schleife habe ich ein paar Zeilen hinzugefügt. Nun wird bei jedem Tastendruck ein Screenshot gemacht und als Bild gespeichert. Das ganz funktioniert bestens auf meinem Rechner (Win7). Doch wenn ich nun der Compilierten Code auf einem anderen Rechner Starte (Windows XP Rechner im Büro), hängt sich das Programm auf. Aber warum?
Wenn ich nun bei jedem Tastendruck das Bild in ein PDF-Dokument anhängen könnte oder bei Programmende alle Bilder zusammen in ein PDF-einbinden könnte wäre das optimal.
Code: Alles auswählen
Procedure.l CaptureScreen()
ExamineDesktops()
width = DesktopWidth(0)
height = DesktopHeight(0)
srcDC = CreateDC_("DISPLAY", "", "", dm.DEVMODE)
trgDC = CreateCompatibleDC_(srcDC)
BMPHandle = CreateCompatibleBitmap_(srcDC, width, height)
SelectObject_( trgDC, BMPHandle)
BitBlt_( trgDC, 0, 0, width, height, srcDC, 0, 0, #SRCCOPY)
DeleteDC_( trgDC)
ReleaseDC_(BMPHandle, srcDC)
CreateImage(0, width, height, 32)
StartDrawing(ImageOutput(0))
DrawImage(BMPHandle, 0, 0)
StopDrawing()
DeleteObject_(BMPHandle)
EndProcedure
i = 0
OpenWindow(1,0,0,40,40,"Fenster")
Repeat
state=GetKeyState_(#VK_F12)
If state<>0 And state<>1
i = i+1
CaptureScreen()
ResizeImage(0,640,480)
Name.s= "f:\Ablauf\Copy" + StrU(i, #PB_Byte) +".png"
SaveImage(0, Name.s)
EndIf
Until WaitWindowEvent()=#WM_CLOSE