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! :lol:

Verfasst: 11.06.2006 17:35
von Alves
Jilocasin hat geschrieben:ganzen Desktop mit allen Windows wie einen Screen behandeln

Per OpenScreen(...) :lol: :lol: 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
Gugg mal hier:
http://www.purebasic.fr/german/viewtopic.php?t=8513

//nachtrag

schon wieder zu spät ! :lol: :cry:

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?