OVH Cloud OVH Cloud

Instances de programmes...

2 réponses
Avatar
HECHT Franck
Bonjour,

Apr=E8s une longue absence dans ce NewsGroup, je revient un=20
asser gros projet en cours de d=E9veloppement mais je me=20
heurte =E0 un gros probl=E8me.

Mon programme sera destin=E9 =E0 personnaliser Windows et=20
offrira des fonctions int=E9r=E9ssante comme une gestion de=20
la transparence des fentres, barre des taches etc.....

C'est l=E0 que j'ai un probl=E8me, c'est l'utilisateur final=20
qui pourra choisir les fenetres qui seront ou non=20
transparente....jusque l=E0 j'ai pas de probl=E8me....ce que=20
je veut faire, c'est ajouter une options qui permetterais=20
au programme de mettre de la transparence aux instances=20
des fenetres list=E9es.

Tout ce que je connais des fenetres dans le programme,=20
c'est leur titre et handle...

Y'a t-il moyen de connaitre toutes les instance d'un meme=20
programme =E0 partir de ces 2 informations ? Si oui,=20
comment faire ?

Exemple: Dans ma liste, j'ai l'explorateur ouvert avec le=20
titre "Poste de travail"....et ce que je veut, c'est par=20
exemple quand j'ouvre une nouvelle fenetre de explorer=20
mais directement sur "Mes Images", je voudrais aussi que=20
cette fenetre soit transparente et ce, sans devoir=20
l'ajouter =E0 la liste des fenetres s=E9lectionn=E9es pour la=20
transparence !!

Merci pour votre future aide ;)

2 réponses

Avatar
ng
Salut,

Quelle genre de transparence ?
Quelque chose comme cà ?

Option Explicit

Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
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 Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd
As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long)
As Long

Public Sub FixTransparence(lTrans As Long, lhWnd As Long)
Dim lRet As Long
lRet = GetWindowLong(lhWnd, GWL_EXSTYLE)
lRet = lRet Or WS_EX_LAYERED
Call SetWindowLong(lhWnd, GWL_EXSTYLE, lRet)
Call SetLayeredWindowAttributes(lhWnd, 0, lTrans, LWA_ALPHA)
End Sub

Private Sub Form_Load()
Call FixTransparence(200, Me.hWnd)
End Sub


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/

HECHT Franck a écrit :

Bonjour,

Après une longue absence dans ce NewsGroup, je revient un
asser gros projet en cours de développement mais je me
heurte à un gros problème.

Mon programme sera destiné à personnaliser Windows et
offrira des fonctions intéréssante comme une gestion de
la transparence des fentres, barre des taches etc.....

C'est là que j'ai un problème, c'est l'utilisateur final
qui pourra choisir les fenetres qui seront ou non
transparente....jusque là j'ai pas de problème....ce que
je veut faire, c'est ajouter une options qui permetterais
au programme de mettre de la transparence aux instances
des fenetres listées.

Tout ce que je connais des fenetres dans le programme,
c'est leur titre et handle...

Y'a t-il moyen de connaitre toutes les instance d'un meme
programme à partir de ces 2 informations ? Si oui,
comment faire ?

Exemple: Dans ma liste, j'ai l'explorateur ouvert avec le
titre "Poste de travail"....et ce que je veut, c'est par
exemple quand j'ouvre une nouvelle fenetre de explorer
mais directement sur "Mes Images", je voudrais aussi que
cette fenetre soit transparente et ce, sans devoir
l'ajouter à la liste des fenetres sélectionnées pour la
transparence !!

Merci pour votre future aide ;)


Avatar
HECHT Franck
Oui mais pour la transparence tout est au point....ce que
je cherche à faire c'est le reste comme mentionné dans le
1° message...donc, comme dans l'exemple que j'ai cité ;)

-----Message d'origine-----
Salut,

Quelle genre de transparence ?
Quelque chose comme cà ?

Option Explicit

Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
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 Declare Function SetLayeredWindowAttributes


Lib "user32" (ByVal hWnd
As Long, ByVal crKey As Long, ByVal bAlpha As Byte,


ByVal dwFlags As Long)
As Long

Public Sub FixTransparence(lTrans As Long, lhWnd As Long)
Dim lRet As Long
lRet = GetWindowLong(lhWnd, GWL_EXSTYLE)
lRet = lRet Or WS_EX_LAYERED
Call SetWindowLong(lhWnd, GWL_EXSTYLE, lRet)
Call SetLayeredWindowAttributes(lhWnd, 0, lTrans,


LWA_ALPHA)
End Sub

Private Sub Form_Load()
Call FixTransparence(200, Me.hWnd)
End Sub


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/

HECHT Franck a écrit :

Bonjour,

Après une longue absence dans ce NewsGroup, je revient




un
asser gros projet en cours de développement mais je me
heurte à un gros problème.

Mon programme sera destiné à personnaliser Windows et
offrira des fonctions intéréssante comme une gestion de
la transparence des fentres, barre des taches etc.....

C'est là que j'ai un problème, c'est l'utilisateur




final
qui pourra choisir les fenetres qui seront ou non
transparente....jusque là j'ai pas de problème....ce




que
je veut faire, c'est ajouter une options qui




permetterais
au programme de mettre de la transparence aux instances
des fenetres listées.

Tout ce que je connais des fenetres dans le programme,
c'est leur titre et handle...

Y'a t-il moyen de connaitre toutes les instance d'un




meme
programme à partir de ces 2 informations ? Si oui,
comment faire ?

Exemple: Dans ma liste, j'ai l'explorateur ouvert avec




le
titre "Poste de travail"....et ce que je veut, c'est




par
exemple quand j'ouvre une nouvelle fenetre de explorer
mais directement sur "Mes Images", je voudrais aussi




que
cette fenetre soit transparente et ce, sans devoir
l'ajouter à la liste des fenetres sélectionnées pour la
transparence !!

Merci pour votre future aide ;)




.