RENDRE TRANSPARANT SON BUREAU

mandark Messages postés 16 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 10 mai 2006 - 29 déc. 2004 à 11:54
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 30 déc. 2004 à 10:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28483-rendre-transparant-son-bureau

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
30 déc. 2004 à 10:39
Ce sera pareil !

Ce qu'il faut, c'est récupèrer les "vrais" handles de fenêtres des fenêtres affichées (voir ma source nommée Anti-Pub), et ensuite appliquer la transparence pour ces fenêtres là uniquement.

Imagine, si tu as 2 fenêtres affichées, ca te prendra alors 2 appels à l'API avec les bons handles avec ma méthode, alors qu'avec la tienne, ca prendra 2000000 d'appels ! Y'a pas photos !

DarK Sidious
CCJ Messages postés 565 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 30 avril 2008 1
30 déc. 2004 à 10:28
darksidious tu croit que si je met un timer avec un intervale de 1 et que je met ce code
dim h as long
------------------------------------------------------------
private sub timer_timer()
h=h+1
call makewindowtransparent(h,50)
end sub
ca va moi utiliser de CPU
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 déc. 2004 à 20:06
Oui, je suis d'accord, mais cela demande 2 fois plus de CPU encore !

DarK Sidious
CCJ Messages postés 565 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 30 avril 2008 1
29 déc. 2004 à 20:01
ok je vai reflechir a ca mais pour les handle il sufit de modifier le numero 10000 comme par exemple
For h = -10000 To 1000000
Call MakeWindowTransparent(h, 50)
Next h
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 déc. 2004 à 14:49
Au fait, j'y pense, si une fenêtre à un handle supérieur à 100 000, ou un handle négatif ? Parce que les handles de fenêtres sont codés sur des entiers longs...

De plus, cette méthode rend transparent également tout les contrôles possèdant un hWnd, ce qui demande beaucoup de CPU pour tout les rendre transparents s'il y en a beaucoup...

Quelques pistes à étudier pour éviter une boucle naïve sur les handles possibles !

DarK Sidious
fg85 Messages postés 370 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 13 avril 2007
29 déc. 2004 à 14:29
ok, merci ;-) (déja je trouve ce programme nettement plus sympathique)
CCJ Messages postés 565 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 30 avril 2008 1
29 déc. 2004 à 13:03
sinon pour rendre a un prog son apparence initiale il sufiit de remplacer :
Private Sub Timer1_Timer()
For h = 1 To 100000
Call MakeWindowTransparent(h, 50)
Next h
End
End Sub
par:
Private Sub Timer1_Timer()
For h = 1 To 100000
Call MakeWindowTransparent(h, 250)
Next h
End
End Sub
CCJ Messages postés 565 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 30 avril 2008 1
29 déc. 2004 à 13:01
oui je sais j'ai un prog comme ca mais c'est un peut barbare car sa renome les fenetres par leurs handle et apres tu entre le handle de la ciblepour la rendre transparante.Je mettrai une source quand j'aurai fini avec des fonction pour modif les prog en cour mais j'ai pas fini donc un peut de patience SVP
fg85 Messages postés 370 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 13 avril 2007
29 déc. 2004 à 12:41
Tout à fait d'accord ;-)

----------------------------
http://fg.logiciel.free.fr
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 déc. 2004 à 12:40
Il serait préférable de récupèrer les handles de fenêtres plutôt que de rendre tout les handles transparents ! Ca éviterais sûrement les risques de plantages !

DarK Sidious
fg85 Messages postés 370 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 13 avril 2007
29 déc. 2004 à 12:11
OUff , c bon , il suffit de redémmarrer explorer , sinon avec un p4 à 3.8Ghz ça à fait bugger .
fg85 Messages postés 370 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 13 avril 2007
29 déc. 2004 à 12:09
On fé comment pour remmettre com d'hab ??
Parce que moi , c pas la joie :-(
Vite please !!!
mandark Messages postés 16 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 10 mai 2006
29 déc. 2004 à 11:54
"For h = 1 To 100000"
c'est un peu "violent", non ?
J'ai pas testé mais ca met combien de temps à s'executer ?
un petit doevents au milieu serait peut être le bienvenu ;p