Taskbar Tranzparent

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Taskbar Tranzparent

Beitrag 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.

Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag 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
my pb stuff..
Bild..jedenfalls war das mal so.
funk.munich
Beiträge: 123
Registriert: 27.03.2006 09:45

Beitrag von funk.munich »

Hi roherter,

und wie kann man diesen Wert zurücksetzen?

Danke + Gruß,
Daniel
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag 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
my pb stuff..
Bild..jedenfalls war das mal so.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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

;-)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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 ?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten