Seite 1 von 1
GrabSprite() (oder ähnliches) auch ohne Screen?
Verfasst: 23.05.2006 15:12
von Rattlesnake Entertainment
Hi
Ich will ein Programm machen, wo der Desktop, bzw die Benutzeroberfläche fotografiert wird, und dann auf einem Screen angezeigt wird.
Problem: so viel ich weiß, kann man Sprite-Befehle nur auf Screens ausführen, ausser es gibt einen Befehl GrabDesktop() oder so ähnlich
Lösung(en):Leider noch keine
Na ja hoffentlich kann mir wer helfen

Verfasst: 23.05.2006 15:17
von AND51
Wie wäre es denn mal wenn du im FOrum nach der Möglichkeit suchst, einen Screenshot nzu erstellen? Dazu gibt es hier genug Beiträge und Lösungen; ferner gibt es diese Code auch schon in diversen Libs, sollte also nicht ganz unbekannt sein...
Verfasst: 23.05.2006 16:41
von Mok
Soviel ich da weiß, geht das nicht. Ich blättere mal alle PB-Hilfen durch.
Verfasst: 23.05.2006 16:44
von DarkDragon
Mok hat geschrieben:Soviel ich da weiß, geht das nicht. Ich blättere mal alle PB-Hilfen durch.
http://www.purebasic.fr/german/viewtopi ... screenshot
Im CodeArchiv gibts auch noch Codes.
Verfasst: 23.05.2006 17:00
von Rattlesnake Entertainment
jetzt werde ich gleich zusammengedroschen, aber ich will den ganzen Desktop fotografieren, und evtl. das bild auch noch speichern
Verfasst: 23.05.2006 17:29
von roherter
Soweit ich da erkennen kann auf dem ersten blick hat dir DarkDragon schon die antwort gegeben du müsstet dir halt nur mal die zweite Procedure anschauen von dem link s.o.

Verfasst: 26.05.2006 08:35
von Jilocasin
@Rattlesnake
Das ist die einfachste Variante:
Code: Alles auswählen
;Bitmap anlegen:
CreateImage(0,GetSystemmetrics_(#SM_CXSCREEN),GetSystemmetrics_(#SM_CYSCREEN))
;auf angelegtes Bitmap zeichnen:
DC = StartDrawing(ImageOutput())
BitBlt_(DC,0,0,ImageWidth(),ImageHeight(),GetDC_(GetDesktopWindow_()),0,0,#SRCCOPY)
StopDrawing()
;Bitmap an Fenstergroesse anpassen
ResizeImage(0,640,480)
If OpenWindow(0,100,100,640,480, #PB_Window_SystemMenu, "Screenshot")
Repeat
EventID.l = WaitWindowEvent()
StartDrawing(WindowOutput())
DrawImage(ImageID(),0,0)
StopDrawing()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
End
Verfasst: 27.05.2006 16:59
von Rattlesnake Entertainment
@Jilocasin:
Jau, das hab' ich gesucht, Danke
