Seite 1 von 2
Ganzen desktop als Screen
Verfasst: 11.06.2006 16:24
von Alves
Wie kann ich den ganzen Desktop mit allen Windows wie einen Screen behandeln, also das die Windows nicht mehr reagieren auf Tastendrücke?
Könnte man vll per Screenshot und ScreenOutput machen, aber die gefundenen Beispiele wollen sich nicht verstehen lassen. Hilfe?
Verfasst: 11.06.2006 16:40
von Kaeru Gaman
ermn.. was genau hast du vor?
also, es gibt möglichkeiten, einen desktop-screenshot zu machen und den als hintergrundbild für nen DX-screen zu verwenden.
das akute optische problem wird der Mauszeiger sein.
das würdest du umgehen, wenn du ein borderless maximized win erstellst, mit einem windowedscreen, der die aktuelle desktopgröße benutzt.
außerdem solltest du dann alle eingaben hooken, oder wär das ok, wenn dein prog mit Alt-Tab übergangen werden kann?
screenshot vom desktop gibt bestimmt forenthemen dazu.
wenn du dort nicht klar kommst, solltest du vllt. das alte topic hochholen, damit wir wissen, wovon du redest...
Verfasst: 11.06.2006 17:32
von Alves
Nee, überspringen ist nicht gut.
Genau das wollt ich machen. Screenshot vom Desktop (ohne Cursor) und als auf den Screen zeichnen.
Was ich vorhab?
Ein Prog was ich früher mal gesehen hab, wo man den Desktop zerballern kann.
Verfasst: 11.06.2006 17:32
von Jilocasin
ganzen Desktop mit allen Windows wie einen Screen behandeln
Per
OpenScreen(...) oder was meinst du?
//nachtrag
Pardon! Ich war leider etwas zu spät!

Verfasst: 11.06.2006 17:35
von Alves
Jilocasin hat geschrieben:ganzen Desktop mit allen Windows wie einen Screen behandeln
Per
OpenScreen(...)

oder was meinst du?
Das was im Post davor steht.
Mit allen Windows.
Verfasst: 11.06.2006 17:37
von Kaeru Gaman
ach SOOO.. das sollte doch supereasy gehen.
also, screenshot von desktop per programm machen lassen muss möglich sein, schließlich kostet mich das nur einen knopfdruck, also ist die funktion vorhanden.
hast du denn mit der boardsuche nix gefunden?
Verfasst: 11.06.2006 17:38
von Jilocasin
Verfasst: 11.06.2006 17:54
von Alves
Ander Variante bin ich ja grad dran.
Verprügelt mich, ich weiß, aber ich komm damit nicht klar:
Hab jetzt den Code von Jilocasin:
Code: Alles auswählen
Enumeration
#image
EndEnumeration
;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 1=2
If OpenWindow(0, 10, 10, 640, 480, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "Screenshot")
StartDrawing(WindowOutput())
DrawImage(ImageID(),0,0)
StopDrawing()
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
End
EndIf
InitKeyboard()
InitSprite()
OpenScreen(800,600,32,"Abreagieren")
Repeat
ClearScreen(0,0,0)
ExamineKeyboard()
StartDrawing(ScreenOutput())
DrawImage(ImageID(), 0, 0)
StopDrawing()
Until KeyboardPushed(#PB_Key_Escape)
Er öffnet den Screen, aber er rendert nichts drauf.
Edit:
Schlagt mich noch doller, ich hab nich mal ein FlipBuffers().
Geht aber trotzdem nicht.
Verfasst: 11.06.2006 18:20
von Alves
Danke für die Hilfe, funzt jetzt mit diesem Kot:
Code: Alles auswählen
Enumeration
#image
EndEnumeration
;Bitmap anlegen
CreateImage(#image,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(#image,800,600)
If 1=2
If OpenWindow(0, 10, 10, 640, 480, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "Screenshot")
StartDrawing(WindowOutput())
DrawImage(ImageID(),0,0)
StopDrawing()
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
End
EndIf
ergeb=UseImage(#image)
InitKeyboard()
InitSprite()
OpenScreen(800,600,32,"Abreagieren")
Repeat
ClearScreen(0,0,0)
ExamineKeyboard()
StartDrawing(ScreenOutput())
DrawImage(ergeb, 0, 0)
StopDrawing()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Alleridngs lässt die Quality ein bisschen zu wünschen übrig.
Auch geändert.
Ein Wunder. Heut brauch ich kaum Hilfe, aber nachher wahrsce, bei den MouseBefehlen...
Verfasst: 11.06.2006 18:37
von vonTurnundTaxis
Alves hat geschrieben:funzt jetzt mit diesem Kot
Ähm ja?