OVH Cloud OVH Cloud

Fenêtre active

5 réponses
Avatar
Stef
Bonjour

Je cherche a savoir si la fenêtre de discussion de msn est au premier plan,
donc active.
Je ne trouve pas la ou les api à utiliser.

Le but étant le suivant. J'ai un timer sur une form qui scrtutera si une
fenêtre de discussion est active et si oui je souhaite déclencher un
evenement vb

Merci d'avance

--
Stéphan

5 réponses

Avatar
François Picalausa
Hello,

Tu as le jeu d'APIs Messenger qui permet ça:
Projet > Références > Messenger API Type Library

Sinon, avec un timer, GetActiveWindow et GetWindowText ça doit être
possible.


--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Stef" a écrit dans le message de
news:u%
Bonjour

Je cherche a savoir si la fenêtre de discussion de msn est au premier
plan, donc active.
Je ne trouve pas la ou les api à utiliser.

Le but étant le suivant. J'ai un timer sur une form qui scrtutera si
une fenêtre de discussion est active et si oui je souhaite déclencher
un evenement vb

Merci d'avance


Avatar
ng
Salut,

Si tu procède par automation et donc que tu connais le hWnd de la fenetre,
c'est facile, il suffit d'utiliser l'API GetForegroundWindow :

Declare Function GetForegroundWindow Lib "user32" Alias
"GetForegroundWindow" () As Long

If GetForegroundWindow = oConv.hWnd Then
'//Fenêtre effectivement active
Else
'//nop
End If

Sinon il faudra déjà récupérer le hWnd de la fenêtre, par son titre par
exemple : %pseudo% - Conversation pour la version francaise.

--
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/



Stef a écrit :

Bonjour

Je cherche a savoir si la fenêtre de discussion de msn est au premier
plan, donc active.
Je ne trouve pas la ou les api à utiliser.

Le but étant le suivant. J'ai un timer sur une form qui scrtutera si
une fenêtre de discussion est active et si oui je souhaite déclencher
un evenement vb

Merci d'avance


Avatar
Stef
Je ne connais pas le hWnd de la fenêtre et par le pseudo c'est dur, il peu
changer

"ng" a écrit dans le message de
news:
Salut,

Si tu procède par automation et donc que tu connais le hWnd de la fenetre,
c'est facile, il suffit d'utiliser l'API GetForegroundWindow :

Declare Function GetForegroundWindow Lib "user32" Alias
"GetForegroundWindow" () As Long

If GetForegroundWindow = oConv.hWnd Then
'//Fenêtre effectivement active
Else
'//nop
End If

Sinon il faudra déjà récupérer le hWnd de la fenêtre, par son titre par
exemple : %pseudo% - Conversation pour la version francaise.

--
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/



Stef a écrit :

> Bonjour
>
> Je cherche a savoir si la fenêtre de discussion de msn est au premier
> plan, donc active.
> Je ne trouve pas la ou les api à utiliser.
>
> Le but étant le suivant. J'ai un timer sur une form qui scrtutera si
> une fenêtre de discussion est active et si oui je souhaite déclencher
> un evenement vb
>
> Merci d'avance




Avatar
ng
Salut,

Je ne connais pas le hWnd de la fenêtre


Tu devrais, voici un exemple avec la type library :

Dim WithEvents oMSN As MessengerAPI.Messenger

Private Sub Form_Load()
Set oMSN = New MessengerAPI.Messenger
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set oMSN = Nothing
End Sub


Private Sub oMSN_OnIMWindowCreated(ByVal pIMWindow As Object)
MsgBox pIMWindow.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/



Stef a écrit :

Je ne connais pas le hWnd de la fenêtre et par le pseudo c'est dur,
il peu changer

"ng" a écrit dans le message de
news:
Salut,

Si tu procède par automation et donc que tu connais le hWnd de la
fenetre, c'est facile, il suffit d'utiliser l'API
GetForegroundWindow :

Declare Function GetForegroundWindow Lib "user32" Alias
"GetForegroundWindow" () As Long

If GetForegroundWindow = oConv.hWnd Then
'//Fenêtre effectivement active
Else
'//nop
End If

Sinon il faudra déjà récupérer le hWnd de la fenêtre, par son titre
par exemple : %pseudo% - Conversation pour la version francaise.

--
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/



Stef a écrit :

Bonjour

Je cherche a savoir si la fenêtre de discussion de msn est au
premier plan, donc active.
Je ne trouve pas la ou les api à utiliser.

Le but étant le suivant. J'ai un timer sur une form qui scrtutera si
une fenêtre de discussion est active et si oui je souhaite
déclencher un evenement vb

Merci d'avance






Avatar
Stef
Merci beaucoup. Ca marche

"ng" a écrit dans le message de
news:
Salut,

> Je ne connais pas le hWnd de la fenêtre
Tu devrais, voici un exemple avec la type library :

Dim WithEvents oMSN As MessengerAPI.Messenger

Private Sub Form_Load()
Set oMSN = New MessengerAPI.Messenger
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set oMSN = Nothing
End Sub


Private Sub oMSN_OnIMWindowCreated(ByVal pIMWindow As Object)
MsgBox pIMWindow.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/



Stef a écrit :

> Je ne connais pas le hWnd de la fenêtre et par le pseudo c'est dur,
> il peu changer
>
> "ng" a écrit dans le message de
> news:
>> Salut,
>>
>> Si tu procède par automation et donc que tu connais le hWnd de la
>> fenetre, c'est facile, il suffit d'utiliser l'API
>> GetForegroundWindow :
>>
>> Declare Function GetForegroundWindow Lib "user32" Alias
>> "GetForegroundWindow" () As Long
>>
>> If GetForegroundWindow = oConv.hWnd Then
>> '//Fenêtre effectivement active
>> Else
>> '//nop
>> End If
>>
>> Sinon il faudra déjà récupérer le hWnd de la fenêtre, par son titre
>> par exemple : %pseudo% - Conversation pour la version francaise.
>>
>> --
>> 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/
>>
>>
>>
>> Stef a écrit :
>>
>>> Bonjour
>>>
>>> Je cherche a savoir si la fenêtre de discussion de msn est au
>>> premier plan, donc active.
>>> Je ne trouve pas la ou les api à utiliser.
>>>
>>> Le but étant le suivant. J'ai un timer sur une form qui scrtutera si
>>> une fenêtre de discussion est active et si oui je souhaite
>>> déclencher un evenement vb
>>>
>>> Merci d'avance