OVH Cloud OVH Cloud

1 seule instance

5 réponses
Avatar
Thonnier philippe
Bonjour à tous

Je suis tout nouveau dans le monde de vb6 alors pardonnez moi pour ces
question qui peuvent vous paraitres idiotes.

- Commen faire pour être sur de lancer qu'une instance d'une application VB6
(si l'appli est deja lancé alors la remettre au premier plan.)


Merci d'avance

5 réponses

Avatar
Jean-Marc
"Thonnier philippe" a écrit dans le message de
news:
Bonjour à tous

Je suis tout nouveau dans le monde de vb6 alors pardonnez moi pour ces
question qui peuvent vous paraitres idiotes.

- Commen faire pour être sur de lancer qu'une instance d'une application


VB6
(si l'appli est deja lancé alors la remettre au premier plan.)




Hello,

C'est tout simple avec PrevINstance, qui s'utilise
comme ceci:

Private Sub Form_Load()

If App.PrevInstance = True Then
MsgBox "application déjà lancée."
End
Else
MsgBox "premier lancement de l'application"
End If

End Sub


Bonne prog avec VB6 :-)

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
Alfred
"Thonnier philippe" a écrit dans le message de
news:
Bonjour à tous

Je suis tout nouveau dans le monde de vb6 alors pardonnez moi pour ces
question qui peuvent vous paraitres idiotes.

- Commen faire pour être sur de lancer qu'une instance d'une application


VB6
(si l'appli est deja lancé alors la remettre au premier plan.)


Merci d'avance





Bonjour

Private Sub Form_Load()
If App.PrevInstance Then ShowPrevInstance

......
End Sub

Private Sub ShowPrevInstance()
Dim OldTitle As String
Dim ll_WindowHandle As Long
'saving the current title in OldTitle variable
'and changing the application title
OldTitle = App.Title
App.Title = "This App Will Be Closed"
'finding the previous instance. if you are using VB 5.0,
'change "ThunderRT6Main" to "ThunderRT5Main"
ll_WindowHandle = FindWindow("ThunderRT6Main", OldTitle)
'if there is no old instances of your application - exit.
If ll_WindowHandle = 0 Then Exit Sub
'Find the window we need to restore
ll_WindowHandle = GetWindow(ll_WindowHandle, GW_HWNDPREV)
'Now restore it
Call OpenIcon(ll_WindowHandle)
'And Bring it to the foreground
Call SetForegroundWindow(ll_WindowHandle)

End

End Sub


dans un module:
Option Explicit
'Empècher 2è instance
'DECLARATION API
Declare Function OpenIcon Lib "user32" (ByVal hwnd As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _
lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As _
Long) As Long
Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As _
Long
'DECLARATION CONSTANTE
Public Const GW_HWNDPREV = 3

Alfred
Avatar
Guy DETIENNE
Salut ;O)

Ton exemple ne remet pas la fenêtre de l'application déjà lancée au premier
plan.
Voir donc le post en dessous de Alfred.

Guy



"Jean-Marc" a écrit dans le message de
news:437df97b$0$20585$
"Thonnier philippe" a écrit dans le message de
news:
> Bonjour à tous
>
> Je suis tout nouveau dans le monde de vb6 alors pardonnez moi pour ces
> question qui peuvent vous paraitres idiotes.
>
> - Commen faire pour être sur de lancer qu'une instance d'une application
VB6
> (si l'appli est deja lancé alors la remettre au premier plan.)


Hello,

C'est tout simple avec PrevINstance, qui s'utilise
comme ceci:

Private Sub Form_Load()

If App.PrevInstance = True Then
MsgBox "application déjà lancée."
End
Else
MsgBox "premier lancement de l'application"
End If

End Sub


Bonne prog avec VB6 :-)

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;



Avatar
Jean-Marc
Tout à fait,

je n'avais traité que la partie 1 de la question,
honte sur moi et ma descendance pour les 12 siècles
à venir :-))

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;


"Guy DETIENNE" a écrit dans le message de
news:%
Salut ;O)

Ton exemple ne remet pas la fenêtre de l'application déjà lancée au


premier
plan.
Voir donc le post en dessous de Alfred.

Guy



"Jean-Marc" a écrit dans le message de
news:437df97b$0$20585$
> "Thonnier philippe" a écrit dans le message de
> news:
> > Bonjour à tous
> >
> > Je suis tout nouveau dans le monde de vb6 alors pardonnez moi pour ces
> > question qui peuvent vous paraitres idiotes.
> >
> > - Commen faire pour être sur de lancer qu'une instance d'une


application
> VB6
> > (si l'appli est deja lancé alors la remettre au premier plan.)
>
>
> Hello,
>
> C'est tout simple avec PrevINstance, qui s'utilise
> comme ceci:
>
> Private Sub Form_Load()
>
> If App.PrevInstance = True Then
> MsgBox "application déjà lancée."
> End
> Else
> MsgBox "premier lancement de l'application"
> End If
>
> End Sub
>
>
> Bonne prog avec VB6 :-)
>
> --
> Jean-marc
> Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
> "There are only 10 kind of people
> those who understand binary and those who don't."
> mailto: remove '_no_spam_' ;
>




Avatar
Guy DETIENNE
On ira pas jusque là !
Mais de toi à moi, j'avais lu quelque part que App.PrevInstance n'était pas
si efficace.
Si je retrouve l'info....

Guy

"Jean-Marc" a écrit dans le message de
news:437e1b26$0$27161$
Tout à fait,

je n'avais traité que la partie 1 de la question,
honte sur moi et ma descendance pour les 12 siècles
à venir :-))

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;


"Guy DETIENNE" a écrit dans le message de
news:%
> Salut ;O)
>
> Ton exemple ne remet pas la fenêtre de l'application déjà lancée au
premier
> plan.
> Voir donc le post en dessous de Alfred.
>
> Guy
>
>
>
> "Jean-Marc" a écrit dans le message de
> news:437df97b$0$20585$
> > "Thonnier philippe" a écrit dans le message


de
> > news:
> > > Bonjour à tous
> > >
> > > Je suis tout nouveau dans le monde de vb6 alors pardonnez moi pour


ces
> > > question qui peuvent vous paraitres idiotes.
> > >
> > > - Commen faire pour être sur de lancer qu'une instance d'une
application
> > VB6
> > > (si l'appli est deja lancé alors la remettre au premier plan.)
> >
> >
> > Hello,
> >
> > C'est tout simple avec PrevINstance, qui s'utilise
> > comme ceci:
> >
> > Private Sub Form_Load()
> >
> > If App.PrevInstance = True Then
> > MsgBox "application déjà lancée."
> > End
> > Else
> > MsgBox "premier lancement de l'application"
> > End If
> >
> > End Sub
> >
> >
> > Bonne prog avec VB6 :-)
> >
> > --
> > Jean-marc
> > Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
> > "There are only 10 kind of people
> > those who understand binary and those who don't."
> > mailto: remove '_no_spam_' ;
> >
>
>