Auf Desktop zeichnen wie in OpenScreen - wie?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Auf Desktop zeichnen wie in OpenScreen - wie?

Beitrag von AND51 »

Hallo!

Wie kann ich auf dem Desktop (ohne eigenes PB-Fenster malen, zeichnen, text/Bild ausgeben, als wäre der Desktop ein OpenScreen()? Und auch wieder löschen (mit einer transparenten Farbe)?

Jeder Post egal ob Code, Beitrag, Link, etc. ist willkommen!

Danke! MfG, AND51
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Hab das mal für dich rausgesucht,vileicht kannstes gebrauchen:

Code: Alles auswählen

; www.purearea.net (Sourcecode collection by cnesm)
; Author:  (updated for PB3.93 by ts-soft)
; Date: 22. November 2003

Global Mem.l 
; hier werden 1024 byte speicher reserviert 
Mem = AllocateMemory(1024) 

Procedure.l DesktopOutpute() 
  PokeL(Mem, 1) 
  ProcedureReturn Mem 
EndProcedure 

maus.POINT 

Repeat 
  ; hier werden die maus koordinaten ausgelesen 
  GetCursorPos_(maus) 
  ; 
  ; hier beginnt die verwirrung 
  StartDrawing(DesktopOutpute()) 
  Plot(maus\x, maus\y, $0000FF) 
  StopDrawing() 
  ; 
  ; delay für cpu entlastung 
  Delay(5) 
  ; hier wird die escape taste geprüft 
  If GetAsyncKeyState_(#VK_ESCAPE) 
    Quit = 1 
  EndIf 
  
Until Quit 
InvalidateRect_(0, 0, 0) 
End 

; ExecutableFormat=Windows
; FirstLine=1
; EOF
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Auf Desktop zeichnen wie in OpenScreen - wie?

Beitrag von Danilo »

AND51 hat geschrieben:Jeder Post egal ob Code, Beitrag, Link, etc. ist willkommen!
Der Desktop ist nicht dazu da um darauf wild rumzuzeichnen.

Es wäre also hilfreich wenn Du sagst was Du genau machen
möchtest, dann kann man genauer sagen wie es am sinnvollsten
zu machen ist.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

@ roherter: Danke für den Code!

@ danilo:
Der Desktop ist nicht dazu da um darauf wild rumzuzeichnen.
Nicht, dass du denkst, ich will ein Virus oder ein Scherzprogramm schreiben, aber ich habe mal in diesem Forum ein Programm gesehen, dass die Bewegung mit der Maus aufzeichnet. Beginnt man mit der Aufzeichnung, so wird ein countdown auf dem Desktop (nicht in einem fenster) angezeigt.
Sowas wollte ich in späteren programmen einmal nachmachen. Im Prinzip sammle ich also erst einmal nur den Code, um in meiner Codeschnipselsammlung hinzuzufügen.


MfG, AND51
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

imho benutzt so ein programm ebenfalls ein fenster,
lediglich ein transparentes...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Kaeru Gaman hat geschrieben:imho benutzt so ein programm ebenfalls ein fenster,
lediglich ein transparentes...
Aha! Und wie bekomme ich ein transparentes fenster?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

hm, es werden nur die Zahlen (der Countdown) auf dem Desktop dargestellt, oder?

Ich denke das wir einfach so gemacht, dass das fenster Unsichtbar erstellt wird, dann mittels API wird es so eingestellt, das es weder im Startmenü als Fenster angezeigt wird, noch im Taskmanager (weis jetzt nicht wie die API befehle lauten -.-). Anschließen wird per API für jede Zahl mit API ( CreateRectRgn_() ) die Regionens für jede Zahl erstellt und dann beim Anzeigen werden einfach die Regions der einzellnen Zahlen zusamen gesetzt und dem Fenster zugewiesen. Müsste so schnellgenug funktionieren :D

^^Kannst ja mal im PB-Forum dannach stöbern :wink:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

danke f. d. tipp!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten