GrabSprite() (oder ähnliches) auch ohne Screen?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Rattlesnake Entertainment
Beiträge: 34
Registriert: 25.10.2005 16:17

GrabSprite() (oder ähnliches) auch ohne Screen?

Beitrag 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 :cry:
Na ja hoffentlich kann mir wer helfen :|
======================
|| Rattlesnake Entertainment ||
======================
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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...
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

Soviel ich da weiß, geht das nicht. Ich blättere mal alle PB-Hilfen durch.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Rattlesnake Entertainment
Beiträge: 34
Registriert: 25.10.2005 16:17

Beitrag von Rattlesnake Entertainment »

jetzt werde ich gleich zusammengedroschen, aber ich will den ganzen Desktop fotografieren, und evtl. das bild auch noch speichern
======================
|| Rattlesnake Entertainment ||
======================
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag 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. :shock:
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag 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
Bild
Benutzeravatar
Rattlesnake Entertainment
Beiträge: 34
Registriert: 25.10.2005 16:17

Beitrag von Rattlesnake Entertainment »

@Jilocasin:
Jau, das hab' ich gesucht, Danke :)
======================
|| Rattlesnake Entertainment ||
======================
Antworten