begin process at 2012 02 11 23:15:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > RENDRE TRANSPARANT SON BUREAU

RENDRE TRANSPARANT SON BUREAU


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :29/12/2004 Date de mise à jour :29/12/2004 11:54:59 Vu / téléchargé :2 657 / 222

Auteur : CCJ

Ecrire un message privé
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

bon , suite a l'echec de mes progs multi-fonctions , je vous propose ce programme qui rendra transparent tout les programmes actifs .

Source

  • 'dans une form nomé Invisible :
  • Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" _
  • (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  • Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" _
  • (ByVal hWnd As Long, ByVal nIndex As Long, _
  • ByVal dwNewLong As Long) As Long
  • Private Const GWL_STYLE = (-16)
  • Private Const GWL_EXSTYLE = (-20)
  • Private Const WS_EX_LAYERED = &H80000
  • Private Declare Function SetLayeredWindowAttributes Lib "USER32" _
  • (ByVal hWnd As Long, ByVal crKey As Long, _
  • ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  • Private Const LWA_COLORKEY = &H1
  • Private Const LWA_ALPHA = &H2
  • Public Sub MakeWindowTransparent(ByVal hWnd As Long, ByVal alphaAmount As Byte)
  • Dim lStyle As Long
  • lStyle = GetWindowLong(hWnd, GWL_EXSTYLE)
  • lStyle = lStyle Or WS_EX_LAYERED
  • SetWindowLong hWnd, GWL_EXSTYLE, lStyle
  • SetLayeredWindowAttributes hWnd, 0, alphaAmount, LWA_ALPHA
  • End Sub
  • Private Sub Form_Load()
  • Call MakeWindowTransparent(Invisible.hWnd, 0)
  • End Sub
  • Private Sub Timer1_Timer()
  • For h = 1 To 100000
  • Call MakeWindowTransparent(h, 50)
  • Next h
  • End
  • End Sub
'dans une form nomé Invisible :
Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Private Declare Function SetLayeredWindowAttributes Lib "USER32" _
(ByVal hWnd As Long, ByVal crKey As Long, _
ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2

Public Sub MakeWindowTransparent(ByVal hWnd As Long, ByVal alphaAmount As Byte)
Dim lStyle As Long
lStyle = GetWindowLong(hWnd, GWL_EXSTYLE)
lStyle = lStyle Or WS_EX_LAYERED
SetWindowLong hWnd, GWL_EXSTYLE, lStyle
SetLayeredWindowAttributes hWnd, 0, alphaAmount, LWA_ALPHA
End Sub

Private Sub Form_Load()
Call MakeWindowTransparent(Invisible.hWnd, 0)
End Sub

Private Sub Timer1_Timer()
For h = 1 To 100000
Call MakeWindowTransparent(h, 50)
Next h
End
End Sub

 Conclusion

pas de bug mais n'utiliser pas ce programme quand beaucoup d'autre prog sont actif car la transparence peut etre genante

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

29 décembre 2004 11:55:00 :
probleme avec mon zip

 Sources du même auteur

Source avec Zip Source avec une capture THE MULTI (LE RETOUR EN BEAUCOUP MIEUX!)
Source avec Zip UN PROGRAMME MULTI-FONCTIONS(MUSIQUE,CPATURE D'ECRAN,INTERNE...

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

Commentaires et avis

Commentaire de mandark le 29/12/2004 11:54:29

"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

Commentaire de fg85 le 29/12/2004 12:09:41

On fé comment pour remmettre com d'hab ??
Parce que moi , c pas la joie :-(
Vite please !!!

Commentaire de fg85 le 29/12/2004 12:11:33

OUff , c bon , il suffit de redémmarrer explorer , sinon avec un p4 à 3.8Ghz ça à fait bugger .

Commentaire de DARKSIDIOUS le 29/12/2004 12:40:42 administrateur CS

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

Commentaire de fg85 le 29/12/2004 12:41:49

Tout à fait d'accord ;-)

----------------------------
http://fg.logiciel.free.fr

Commentaire de CCJ le 29/12/2004 13:01:16

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

Commentaire de CCJ le 29/12/2004 13:03:44

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

Commentaire de fg85 le 29/12/2004 14:29:15

ok, merci ;-) (déja je trouve ce programme nettement plus sympathique)

Commentaire de DARKSIDIOUS le 29/12/2004 14:49:36 administrateur CS

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

Commentaire de CCJ le 29/12/2004 20:01:39

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

Commentaire de DARKSIDIOUS le 29/12/2004 20:06:04 administrateur CS

Oui, je suis d'accord, mais cela demande 2 fois plus de CPU encore !

DarK Sidious

Commentaire de CCJ le 30/12/2004 10:28:40

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

Commentaire de DARKSIDIOUS le 30/12/2004 10:39:41 administrateur CS

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

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,976 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales