Hallo zusammen
Ich bin VisualBasic Entwickler. VB6/VB.Net/C# ist meine tägliche Spielwiese. Jedoch absolut Neu in PureBasic. Ich möchte versuchen eine Applikation zu erstellen welche den Bildschirm bzw. bei Multiscreen, den gesamten Bereich aller Bildschirme, als JPG speichert in einen vordefinierten Ordner. Das wäre dann Schritt 1/6 für mein Kleinprojekt. Falls jemand Interesse hat, kann ich auch gegen Bezahlung eines Obolus das Projekt mit jemandem entwickeln lassen.
Meine Frage ist; Kann mir jemand Hinweise geben zu bestehendem Code in PureBasic Screenshots zu erstellen für Multiscreen Scenarien? Erstmal muss er nur auf Windows funktionieren.
Schöne sonnige Grüsse
goldengel
Kleinprojekt - Screenshots erstellen (Hilfe gesucht)
- TroaX
- Beiträge: 684
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
- Wohnort: NRW
- Kontaktdaten:
Re: Kleinprojekt - Screenshots erstellen (Hilfe gesucht)
Versuche es mal hiermit: http://www.rsbasic.de/aktualisierung/wi ... stellen.pb
Soweit ich weiß wird durch die Print-Funktion alle Screens mitgeschnitten. Wenn du nachher nur noch einen Screenshot von einem Fenster willst, kannst du die Auflösungen aller Dektops erfassen und diese aus der Grafik rausrechnen.
Informationen über Desktops: http://www.purebasic.com/german/documen ... index.html
Selektieren eines Bildbereiches: http://www.purebasic.com/german/documen ... image.html
Soweit ich weiß wird durch die Print-Funktion alle Screens mitgeschnitten. Wenn du nachher nur noch einen Screenshot von einem Fenster willst, kannst du die Auflösungen aller Dektops erfassen und diese aus der Grafik rausrechnen.
Informationen über Desktops: http://www.purebasic.com/german/documen ... index.html
Selektieren eines Bildbereiches: http://www.purebasic.com/german/documen ... image.html
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Re: Kleinprojekt - Screenshots erstellen (Hilfe gesucht)
Danke für die Antwort. Leider geht das über die Zwischenablage und ist unschön. Die Zwischenablage darf nicht angerührt werden. Gibt es keine saubere Lösung, welche den Bildschirm kopiert anstelle Tasten zu simulieren? Ausserdem wäre ich unsicher, ob das dann wirklich platformunabhängig ist. Weiss das jemand?
-
- Beiträge: 213
- Registriert: 13.07.2008 10:05
- Computerausstattung: Windows 8.1 Pro
AMD Phenom II X4 955 @ 3.2 GHz
4GB RAM
NVIDIA GeForce GTX 660
Re: Kleinprojekt - Screenshots erstellen (Hilfe gesucht)
Ich fürchte um Screenshots ohne Umweg über die Zwischenablage zu machen musst du auf die APIs der Zielplattformen zugreifen.
Eine einfache und Plattform übergreifende Lösung dazu gibt es meines Wissens nicht.
Für Windows habe ich mal ein Beispiel gemacht wie du mit Hilfe der Win API vom Desktop ein Screenshot machen kannst:
Eine einfache und Plattform übergreifende Lösung dazu gibt es meines Wissens nicht.
Für Windows habe ich mal ein Beispiel gemacht wie du mit Hilfe der Win API vom Desktop ein Screenshot machen kannst:
Code: Alles auswählen
Procedure.i GetDesktopScreenshot()
Protected DesktopHandle.i, Image.i, DestDC.i, SrcDC.i
Protected DesktopRect.RECT
GetWindowRect_(GetDesktopWindow_(), @DesktopRect)
Image = CreateImage(#PB_Any, DesktopRect\Right, DesktopRect\Bottom, 24)
DestDC = StartDrawing(ImageOutput(Image))
SrcDC = GetDC_(GetDesktopWindow_())
BitBlt_(DestDC, 0, 0, ImageWidth(Image), ImageHeight(Image), SrcDC, 0, 0, #SRCCOPY)
StopDrawing()
ReleaseDC_(GetDesktopWindow_(), SrcDC)
ProcedureReturn Image
EndProcedure
; ;Beispiel:
; Define Image.i = GetDesktopScreenshot()
; SaveImage(Image, "Screenshot.bmp")
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660