cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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és565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 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és15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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és565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 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és15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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és370Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention13 avril 2007 29 déc. 2004 à 14:29
ok, merci ;-) (déja je trouve ce programme nettement plus sympathique)
CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 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és565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 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és370Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention13 avril 2007 29 déc. 2004 à 12:41
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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és370Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention13 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és370Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention13 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és16Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention10 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
30 déc. 2004 à 10:39
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
30 déc. 2004 à 10:28
dim h as long
------------------------------------------------------------
private sub timer_timer()
h=h+1
call makewindowtransparent(h,50)
end sub
ca va moi utiliser de CPU
29 déc. 2004 à 20:06
DarK Sidious
29 déc. 2004 à 20:01
For h = -10000 To 1000000
Call MakeWindowTransparent(h, 50)
Next h
29 déc. 2004 à 14:49
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
29 déc. 2004 à 14:29
29 déc. 2004 à 13:03
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
29 déc. 2004 à 13:01
29 déc. 2004 à 12:41
----------------------------
http://fg.logiciel.free.fr
29 déc. 2004 à 12:40
DarK Sidious
29 déc. 2004 à 12:11
29 déc. 2004 à 12:09
Parce que moi , c pas la joie :-(
Vite please !!!
29 déc. 2004 à 11:54
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