Seite 1 von 1

Taskbar Tranzparent

Verfasst: 06.06.2006 10:10
von roherter
Inspiriert von diesem Programm wollte ich wissen ob das mit PB auch geht und ob es schwer ist das zu realiesieren ,es funktioniert und das nur mit ein bischen Code.

http://www.winload.de/download/17289/Gr ... P-2.1.html


Mein Code funktioniert unter xp,2000:

Code: Alles auswählen

hwnd= FindWindow_("shell_traywnd","")
SetWindowLong_(hwnd,#GWL_EXSTYLE,GetWindowLong_(hwnd,#GWL_EXSTYLE)|#WS_EX_LAYERED)
SetLayeredWindowAttributes_(hwnd,0,127,2); Da wo jetzt die 127 steht kommt der tranzparentwert rein.


Verfasst: 06.06.2006 18:00
von #NULL
wow! echt genial... vor allem wenn man bedenkt, dass das tool von deinem link 0,4 MB groß is und die vollversion fast 10$ kostet

Verfasst: 08.06.2006 14:40
von funk.munich
Hi roherter,

und wie kann man diesen Wert zurücksetzen?

Danke + Gruß,
Daniel

Verfasst: 08.06.2006 15:52
von #NULL
auf meinem rechner läuft jetzt immer dieses programm :)

Code: Alles auswählen

;zum beenden der exe deren namen im taskmanager suchen und prozess beenden
min=130
max=230
speed=2

up.l=0
lucid.l=max
Repeat
Delay(50)
  If up : lucid+speed
  Else : lucid-speed
  EndIf
  If lucid>max : lucid=max : up=0 : EndIf
  If lucid<min   : lucid=min   : up=1 : EndIf
  hwnd= FindWindow_("shell_traywnd","")
  SetWindowLong_(hwnd,#GWL_EXSTYLE,GetWindowLong_(hwnd,#GWL_EXSTYLE)|#WS_EX_LAYERED)
  SetLayeredWindowAttributes_(hwnd,0,lucid,2); Da wo jetzt die 127 steht kommt der tranzparentwert rein.
Until 0

Verfasst: 08.06.2006 16:37
von Kaeru Gaman
@#NULL

ich glaub, den style setzen brauchst du nur beim ersten aufruf...



> und wie kann man diesen Wert zurücksetzen?

am anfang den wert von

Code: Alles auswählen

GetWindowLong_(hwnd,#GWL_EXSTYLE)
rückspeichern, am schluss wieder darauf setzen.

Verfasst: 08.06.2006 17:54
von edel

Code: Alles auswählen

Alpha = Val(ProgramParameter())

If NOT Alpha > 0 or NOT  Alpha < 255
  Alpha = 150
EndIf

hwnd  = FindWindow_("shell_traywnd","")

style = GetWindowLong_(hwnd,#GWL_EXSTYLE)

If style & #WS_EX_LAYERED
  SetWindowLong_(hwnd,#GWL_EXSTYLE,style&(~#WS_EX_LAYERED))
Else
  SetWindowLong_(hwnd,#GWL_EXSTYLE,style|#WS_EX_LAYERED)
  SetLayeredWindowAttributes_(hwnd,0,Alpha,#LWA_ALPHA)
EndIf

1. mal starten an
2. mal starten aus

Ueber Parameter kann der Alphawert uebergeben werden

;-)

Verfasst: 08.06.2006 23:05
von STARGÅTE
Diese Transparens ist !! SUPER GEIL !! und auch !! SUPER NÜTZLICH !!

welchen parameter muss man änderen damit man auch die Seitlichen Symbolleisten transparent machen kann oder auch andere Fenster ?

Verfasst: 09.06.2006 09:23
von Kaeru Gaman
@Edel
yo, bitwise NOT geht auch.
aber da ich nicht sicher war, ob eines der bits von #WS_EX_LAYERED
bei dem vorherigen zustand von #GWL_EXSTYLE gesetzt sein könnte,
dachte ich sicherheitshalber eher an rückspeichern.

(hab kein PB hier zum checken. wenn LAYERED nur ein einziges bit ist, das nur dafür zuständig ist, kann natürlich nix passieren...)