Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ré-activer une appli de la barre des tâches

6 réponses
Avatar
Christophe
Bonjour =E0 tous:

voil=E0 ce que je veux faire:
a) au d=E9marrage, mon appli VB se met dans la barre des=20
taches (windowstate=3Dminimized).
b)Cette appli scrute le port s=E9rie en permanence.
A r=E9ception d'une info par le port s=E9rie, je veux que la=20
fen=EAtre s'agrandisse pour qu'on la voit(je fais donc=20
windowstate=3Dnormal).

PB: cela fonctionne que quand le focus dans la barre des=20
t=E2ches est sur mon appli.
Si je vais dans Word par ex, =E0 r=E9ception de l'info sur le=20
port com, on devine que la fen=EAtre s'agrandit mais elle=20
n'apparait pas au premier plan comme fen=EAtre active.

j'ai essay=E9 les m=E9thodes ".show", ".setfocus"...mais ma=20
fen=EAtre est toujours en arri=E8re plan.
Quelqu'un a-t-il une id=E9e pour qu'lle devienne=20
automatiquement active ?

Merci par avance
Christophe

6 réponses

Avatar
le_troll
Bonjour,
Avec ça, ça peu marcher:

FormX.Show vbNormal, Me

Me.SetFocus


En le mettant dans une procédure d'évènement "Activate"...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"Christophe" a écrit dans le message
de news: 593401c47476$7b6201c0$
Bonjour à tous:

voilà ce que je veux faire:
a) au démarrage, mon appli VB se met dans la barre des
taches (windowstate=minimized).
b)Cette appli scrute le port série en permanence.
A réception d'une info par le port série, je veux que la
fenêtre s'agrandisse pour qu'on la voit(je fais donc
windowstate=normal).

PB: cela fonctionne que quand le focus dans la barre des
tâches est sur mon appli.
Si je vais dans Word par ex, à réception de l'info sur le
port com, on devine que la fenêtre s'agrandit mais elle
n'apparait pas au premier plan comme fenêtre active.

j'ai essayé les méthodes ".show", ".setfocus"...mais ma
fenêtre est toujours en arrière plan.
Quelqu'un a-t-il une idée pour qu'lle devienne
automatiquement active ?

Merci par avance
Christophe
Avatar
ng
Salut,

Essaye d'ajouter un :

Call AppActivate(Me.Caption)

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


"Christophe" a écrit dans le message
de news:593401c47476$7b6201c0$
Bonjour à tous:

voilà ce que je veux faire:
a) au démarrage, mon appli VB se met dans la barre des
taches (windowstate=minimized).
b)Cette appli scrute le port série en permanence.
A réception d'une info par le port série, je veux que la
fenêtre s'agrandisse pour qu'on la voit(je fais donc
windowstate=normal).

PB: cela fonctionne que quand le focus dans la barre des
tâches est sur mon appli.
Si je vais dans Word par ex, à réception de l'info sur le
port com, on devine que la fenêtre s'agrandit mais elle
n'apparait pas au premier plan comme fenêtre active.

j'ai essayé les méthodes ".show", ".setfocus"...mais ma
fenêtre est toujours en arrière plan.
Quelqu'un a-t-il une idée pour qu'lle devienne
automatiquement active ?

Merci par avance
Christophe
Avatar
Christophe
Hello,

malheureusement aucune des 2 solutions proposées ne
fonctionne: on a toujours la même attitude (ouverture
mais au second plan)

Merci quand même pour votre aide !
Si qq'un d'autre a une idée, sinon je me contenterais de
ça.
Christophe

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

Essaye d'ajouter un :

Call AppActivate(Me.Caption)

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


"Christophe" a


écrit dans le message
de news:593401c47476$7b6201c0$
Bonjour à tous:

voilà ce que je veux faire:
a) au démarrage, mon appli VB se met dans la barre des
taches (windowstate=minimized).
b)Cette appli scrute le port série en permanence.
A réception d'une info par le port série, je veux que la
fenêtre s'agrandisse pour qu'on la voit(je fais donc
windowstate=normal).

PB: cela fonctionne que quand le focus dans la barre des
tâches est sur mon appli.
Si je vais dans Word par ex, à réception de l'info sur le
port com, on devine que la fenêtre s'agrandit mais elle
n'apparait pas au premier plan comme fenêtre active.

j'ai essayé les méthodes ".show", ".setfocus"...mais ma
fenêtre est toujours en arrière plan.
Quelqu'un a-t-il une idée pour qu'lle devienne
automatiquement active ?

Merci par avance
Christophe


.



Avatar
ng
Salut,

?
ApActivate n permet pas une ouverture mais une activation. Cela fonctionne
parfaitement chez moi.

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


"Christophe" a écrit dans le message
de news:5a7d01c474a6$22f4fad0$
Hello,

malheureusement aucune des 2 solutions proposées ne
fonctionne: on a toujours la même attitude (ouverture
mais au second plan)

Merci quand même pour votre aide !
Si qq'un d'autre a une idée, sinon je me contenterais de
ça.
Christophe

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

Essaye d'ajouter un :

Call AppActivate(Me.Caption)

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


"Christophe" a


écrit dans le message
de news:593401c47476$7b6201c0$
Bonjour à tous:

voilà ce que je veux faire:
a) au démarrage, mon appli VB se met dans la barre des
taches (windowstate=minimized).
b)Cette appli scrute le port série en permanence.
A réception d'une info par le port série, je veux que la
fenêtre s'agrandisse pour qu'on la voit(je fais donc
windowstate=normal).

PB: cela fonctionne que quand le focus dans la barre des
tâches est sur mon appli.
Si je vais dans Word par ex, à réception de l'info sur le
port com, on devine que la fenêtre s'agrandit mais elle
n'apparait pas au premier plan comme fenêtre active.

j'ai essayé les méthodes ".show", ".setfocus"...mais ma
fenêtre est toujours en arrière plan.
Quelqu'un a-t-il une idée pour qu'lle devienne
automatiquement active ?

Merci par avance
Christophe


.



Avatar
François Picalausa
Hello,

Tu peux regarder du côté de SetForeGroundWindow:
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/setforegroundwindow.asp
et plus particulièrement les remarques:
"In a preemptive multitasking environment, you should generally let the user
control which window is the foreground window."

Voici une méthode pour forcer l'affichage de la fenêtre:
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_SHOWWINDOW = &H40
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2

Private Declare Function SetWindowPos _
Lib "user32" _
( _
ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long _
) _
As Long

Private Sub Timer1_Timer()
Me.WindowState = vbNormal
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, _
SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

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

"Christophe" a écrit dans le
message de news:5a7d01c474a6$22f4fad0$
malheureusement aucune des 2 solutions proposées ne
fonctionne: on a toujours la même attitude (ouverture
mais au second plan)

Merci quand même pour votre aide !
Si qq'un d'autre a une idée, sinon je me contenterais de
ça.


Avatar
Christophe
Effectivement, ça marche:
j'ai utilisé ton petit bout de code tout simplement

merci beaucoup

-----Message d'origine-----
Hello,

Tu peux regarder du côté de SetForeGroundWindow:
http://msdn.microsoft.com/library/en-


us/winui/winui/windowsuserinterface/windowing/windows/wind
owreference/windowfunctions/setforegroundwindow.asp
et plus particulièrement les remarques:
"In a preemptive multitasking environment, you should


generally let the user
control which window is the foreground window."

Voici une méthode pour forcer l'affichage de la fenêtre:
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_SHOWWINDOW = &H40
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2

Private Declare Function SetWindowPos _
Lib "user32" _
( _
ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long _
) _
As Long

Private Sub Timer1_Timer()
Me.WindowState = vbNormal
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, _
SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

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

"Christophe" a


écrit dans le
message de news:5a7d01c474a6$22f4fad0$
malheureusement aucune des 2 solutions proposées ne
fonctionne: on a toujours la même attitude (ouverture
mais au second plan)

Merci quand même pour votre aide !
Si qq'un d'autre a une idée, sinon je me contenterais




de
ça.




.