Seite 1 von 2
desktop id /zeichnen
Verfasst: 21.02.2011 16:49
von TomTom
hi ich habe hier im forum rumgesucht, aber leider nichts darüber gefunden...
ich habe ein frage:
gibt es eine desktopid? also wenn ich darauf mein bild zeichnen würde, dann würde es andere fenster im vordergrund nicht überschreiben? sondern NUR den desktop?
meine idee:
ich habe letztens (mal wieder) matrix geguckt und wollte als bewegbaren hintergrund die matrixanimation setzen...
dazu habe ich schon versucht ein hintergrund als .gif zu verwenden (klappt nicht)
wenn ich jetzt auf dem desktop (ohne andere fenster) zeichnen könnte würde es funktionieren:
ich werde dann zuerst das hintergrundbild auf schwarz setzen und ein screenshot vom desktop machen. alle icons auslesen, meine matrix auf ein image zeichen, icons drüberzeichnen und das fertige bild auf den desktop malen.
ich weiß es funzt nicht 100%ig (wenn jemand einen rechtsklick auf ein icon macht, wird das menü überschrieben) aber das macht mir nichts
wäre echt cool wenn ihr ideen hättet, wie man das realisieren kann.
MFG tomtom
Re: desktop id /zeichnen
Verfasst: 21.02.2011 17:03
von Kiffi
TomTom hat geschrieben:gibt es eine desktopid?
sowas?
Grüße ... Kiffi
Re: desktop id /zeichnen
Verfasst: 21.02.2011 17:11
von TomTom
vielen dank kiffi für die schnelle antwort
wenn ich zuhause bin werde ich es testen...
LG tomtom
Re: desktop id /zeichnen
Verfasst: 23.02.2011 20:57
von TomTom
hmm hab da noch ein kleines problem...
jetzt habe ich ja die fensterid... aber wie kann ich darauf zeichnen?
geht das mit StartDrawing() oder wie?
vielen dank! tomtom
Re: desktop id /zeichnen
Verfasst: 23.02.2011 21:10
von HeX0R
Ahh Matrix, da fällt mir doch ein
älterer Thread ein.
Puregolf haben wir auch schon ewig nicht mehr gespielt...
Re: desktop id /zeichnen
Verfasst: 25.02.2011 11:51
von bobobo
noch was zum Thema (eventuell)
http://www.purebasic.fr/german/viewtopi ... 97#p277097
(oder du nimmst 'nen Edding, damit kann mal auch prima auf dem Desktop malen

)
Re: desktop id /zeichnen
Verfasst: 25.02.2011 12:07
von bobobo
Oder so .. mit dem VLC unter XP zumindest
vlc --video-wallpaper --qt-start-minimized --repeat "und hier das MatrixDingsbumsvideo rein"
Re: desktop id /zeichnen
Verfasst: 25.02.2011 13:41
von TomTom
vielen dank bobobo!
kann man auch anstatt des textes ein sprite oder image zeichnen, bei diesem code?
hdc = GetWindowDC_(GetShellWindow_())
text$ = "Kacke nee "
SetTextColor_(hdc,#Cyan)
SetBkColor_(hdc,#Red)
TextOut_(hdc,0,0,text$,Len(text$))
ReleaseDC_(GetShellWindow_(),hdc)
vielen dank! mfg tomtom
Re: desktop id /zeichnen
Verfasst: 25.02.2011 14:35
von bobobo
sollte wohl gehen .. das ist allerdings gdi-zeugs und damit windowsApi und damit kein direktes PB.
also z.B.
Code: Alles auswählen
LoadFont(0,"",32)
Debug ElapsedMilliseconds()
Time$ = FormatDate("%hh:%ii",Date()-ElapsedMilliseconds()/1000+(3600*8))
ExamineDesktops()
w=DesktopWidth(0):h=DesktopHeight(0) ;
tw=30;428 ;textwidth (gemessen)
th=120 ;textheight(gemessen)
del=333
del=33
ro.l=235:go.l=80:bo.l=80
;r=82:g=111:b=bo
py=h-th
For i=0 To 30
FreeFont(0)
LoadFont(0,"",Random(22)+10)
hdc = GetWindowDC_(GetShellWindow_())
SelectObject_(hdc,FontID(0))
SetBkMode_(hdc,#TRANSPARENT)
r=ro-20+Random(40):g=go-20+Random(40):b=bo-20+Random(40)
px=Random(w-tw):py=h-th:py=Random(50)+(h-th-50);:py=h-th
SetTextColor_(hdc,#Black)
TextOut_(hdc,px+1,py+1,Time$,5)
BeginPath_(hdc) ;hier wird was vorbereitet
Rectangle_(hdc,px,py,px+3,py+3) ; kleines Rechteck
Arc_(hdc,px,py,px+20,py+20,0,10,0,90) ;ein kleiner Kreis
EndPath_(hdc)
StrokePath_(hdc); und hier wird dann richtig gemalt
Select Random(2)
Case 0
SetTextColor_(hdc,#Yellow)
Case 1
SetTextColor_(hdc,#Red)
Case 2
SetTextColor_(hdc,#Green)
EndSelect
TextOut_(hdc,px,py,Time$,5)
For iv=1 To 512
InvalidateRect_(iv,0,0) ;Soll den Rest bereinigen (iconebene was auch immer)
Next iv
del+33
Debug del
ReleaseDC_(GetShellWindow_(),hdc)
Delay(del)
Next
Du brauchst dazu etwas mehr Info was GDI angeht
z.B.
http://www.henkessoft.de/C++/WinAPI/Win ... _7_GDI.htm
oder bei Microsoft oder bei google
aber schön ist anders . .durch die invalidate-geschichte wird es irgendwann flackern.
das vlc-demo (directX-schirmmalerei) da oben macht es irgendwie besser (und sehr viel aufwändiger)
WENN DU HIER IM BOARD NACH GDI SUCHEN WILLST DANN BEACHTE DASS DER SUCHBEGRIFF MEHR ALS 3 STELLEN HABEN MUSS
Re: desktop id /zeichnen
Verfasst: 25.02.2011 15:00
von ts-soft
bobobo hat geschrieben:Oder so .. mit dem VLC unter XP zumindest
vlc --video-wallpaper --qt-start-minimized --repeat "und hier das MatrixDingsbumsvideo rein"
Für Vista und 7 kann man den
Direct3D-Desktop-Modus nutzen. Commanline dafür konnte
ich aber keine finden.