j'ai fait un programme sous forme de MDI Parent qui vérifie avant de se
lancer qu'il n'y a pas déjà une instance déjà ouverte.
J'uilise pour cela App.Previnstance
Actullement si il y a déjà une instance : la nouvelle informa par un msgBox
puis se referme.
je voudrai éventuellement pouvoir activer l'instance déjà charger (agrandir
si réduite) ou/et mettre en avant par dessus tous les autres prog chargés
(OE, Firfox Word..)
Comment faire cela, tout en sachant que comme c'est une MDI Form, il peut y
avoir des feuilels filles (qui portent toutes un nom)
je viens de tester ton morceau de programme. Effectivement il de démarre pas de deuxième programme,
mais je n'ai pas d'activation ni de mise au premier plan du progeramme précédent.
Est tu sur de bien renseigner WndName (Caption de la fenêtre MDI)
j'ai rajouté égalemement, la commande End dasns "if previnstance", sinon le prgramme ne se décharge pas.
Tu peux également faire les Unload nécessaires, oubli de ma part ...
Driss
je vais voir pas à pas s'il voit et trouve le bonn handle (mais je vais chercher une version compilée)
Oui, d'ailleurs le 'RT6' dans "ThunderRT6MDIForm" indique que c'est une feuille provenant d'un exe, sinon il me semble que c'est "ThunderMDIForm" tout court dans l'IDE
--
Cordialement,
Jacques.
Driss HANIB a écrit :
Salut jacques,
je viens de tester ton morceau de programme.
Effectivement il de démarre pas de deuxième programme,
mais je n'ai pas d'activation ni de mise au premier plan du progeramme
précédent.
Est tu sur de bien renseigner WndName (Caption de la fenêtre MDI)
j'ai rajouté égalemement, la commande End dasns "if previnstance", sinon le
prgramme ne se décharge pas.
Tu peux également faire les Unload nécessaires, oubli de ma part ...
Driss
je vais voir pas à pas s'il voit et trouve le bonn handle
(mais je vais chercher une version compilée)
Oui, d'ailleurs le 'RT6' dans "ThunderRT6MDIForm" indique que c'est une
feuille provenant d'un exe, sinon il me semble que c'est
"ThunderMDIForm" tout court dans l'IDE
je viens de tester ton morceau de programme. Effectivement il de démarre pas de deuxième programme,
mais je n'ai pas d'activation ni de mise au premier plan du progeramme précédent.
Est tu sur de bien renseigner WndName (Caption de la fenêtre MDI)
j'ai rajouté égalemement, la commande End dasns "if previnstance", sinon le prgramme ne se décharge pas.
Tu peux également faire les Unload nécessaires, oubli de ma part ...
Driss
je vais voir pas à pas s'il voit et trouve le bonn handle (mais je vais chercher une version compilée)
Oui, d'ailleurs le 'RT6' dans "ThunderRT6MDIForm" indique que c'est une feuille provenant d'un exe, sinon il me semble que c'est "ThunderMDIForm" tout court dans l'IDE
--
Cordialement,
Jacques.
driss hanib
Salut Jacques Non bien sur : je mettais le nom de la feuille et pas le caption.
J'essaie ce soir et je te tiens au courant
Driss
"Jacques93" a écrit dans le message de news: %
Driss HANIB a écrit :
Salut jacques,
je viens de tester ton morceau de programme. Effectivement il de démarre pas de deuxième programme,
mais je n'ai pas d'activation ni de mise au premier plan du progeramme précédent.
Est tu sur de bien renseigner WndName (Caption de la fenêtre MDI)
j'ai rajouté égalemement, la commande End dasns "if previnstance", sinon le prgramme ne se décharge pas.
Tu peux également faire les Unload nécessaires, oubli de ma part ...
Driss
je vais voir pas à pas s'il voit et trouve le bonn handle (mais je vais chercher une version compilée)
Oui, d'ailleurs le 'RT6' dans "ThunderRT6MDIForm" indique que c'est une feuille provenant d'un exe, sinon il me semble que c'est "ThunderMDIForm" tout court dans l'IDE
--
Cordialement,
Jacques.
Salut Jacques
Non bien sur : je mettais le nom de la feuille et pas le caption.
J'essaie ce soir et je te tiens au courant
Driss
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
%23bztTN01KHA.776@TK2MSFTNGP04.phx.gbl...
Driss HANIB a écrit :
Salut jacques,
je viens de tester ton morceau de programme.
Effectivement il de démarre pas de deuxième programme,
mais je n'ai pas d'activation ni de mise au premier plan du progeramme
précédent.
Est tu sur de bien renseigner WndName (Caption de la fenêtre MDI)
j'ai rajouté égalemement, la commande End dasns "if previnstance", sinon
le prgramme ne se décharge pas.
Tu peux également faire les Unload nécessaires, oubli de ma part ...
Driss
je vais voir pas à pas s'il voit et trouve le bonn handle
(mais je vais chercher une version compilée)
Oui, d'ailleurs le 'RT6' dans "ThunderRT6MDIForm" indique que c'est une
feuille provenant d'un exe, sinon il me semble que c'est "ThunderMDIForm"
tout court dans l'IDE
Salut Jacques Non bien sur : je mettais le nom de la feuille et pas le caption.
J'essaie ce soir et je te tiens au courant
Driss
"Jacques93" a écrit dans le message de news: %
Driss HANIB a écrit :
Salut jacques,
je viens de tester ton morceau de programme. Effectivement il de démarre pas de deuxième programme,
mais je n'ai pas d'activation ni de mise au premier plan du progeramme précédent.
Est tu sur de bien renseigner WndName (Caption de la fenêtre MDI)
j'ai rajouté égalemement, la commande End dasns "if previnstance", sinon le prgramme ne se décharge pas.
Tu peux également faire les Unload nécessaires, oubli de ma part ...
Driss
je vais voir pas à pas s'il voit et trouve le bonn handle (mais je vais chercher une version compilée)
Oui, d'ailleurs le 'RT6' dans "ThunderRT6MDIForm" indique que c'est une feuille provenant d'un exe, sinon il me semble que c'est "ThunderMDIForm" tout court dans l'IDE
--
Cordialement,
Jacques.
Jacques93
driss hanib a écrit :
Salut Jacques Non bien sur : je mettais le nom de la feuille et pas le caption.
c'est vrai, il aurait été plus logique de ma part de nommer la variable 'WndCaption"' :-)
J'essaie ce soir et je te tiens au courant
OK
--
Cordialement,
Jacques.
driss hanib
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Driss
"Jacques93" a écrit dans le message de news: u$
driss hanib a écrit :
Salut Jacques Non bien sur : je mettais le nom de la feuille et pas le caption.
c'est vrai, il aurait été plus logique de ma part de nommer la variable 'WndCaption"' :-)
J'essaie ce soir et je te tiens au courant
OK
--
Cordialement,
Jacques.
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Je viens d'essayer avec le caption. Effectivement il trouve bien la
précédente instance, mais j'ai un curieux phénomène
le programme déjà présent s'affiche et disparait aussi vite.
J'enlevé le End mais j'ai le même phénomène..
Driss
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
u$hkcH11KHA.776@TK2MSFTNGP04.phx.gbl...
driss hanib a écrit :
Salut Jacques
Non bien sur : je mettais le nom de la feuille et pas le caption.
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Driss
"Jacques93" a écrit dans le message de news: u$
driss hanib a écrit :
Salut Jacques Non bien sur : je mettais le nom de la feuille et pas le caption.
c'est vrai, il aurait été plus logique de ma part de nommer la variable 'WndCaption"' :-)
J'essaie ce soir et je te tiens au courant
OK
--
Cordialement,
Jacques.
Jacques93
driss hanib a écrit :
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire, y'a pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Je n'ai pas ce comportement ...
--
Cordialement,
Jacques.
driss hanib a écrit :
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire,
y'a pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la
précédente instance, mais j'ai un curieux phénomène
le programme déjà présent s'affiche et disparait aussi vite.
J'enlevé le End mais j'ai le même phénomène..
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire, y'a pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Je n'ai pas ce comportement ...
--
Cordialement,
Jacques.
LE TROLL
Bonsoir,
Je ne sais pas pour les mdi, mais si on met "Me", form1.show , Me, ça ne s'améliore pas ? Sinon, une fois j'ai résolu ça de façon différente, avec l'API "application toujours au 1er plan à l'écran", quand j'appelais ma feuille qui ne voulait pas passer, sur la feuille appelée j'invoquais l'API sus-cité, puis j'annulais l'effet, et ça restait comme voulu. C'est peut être un peu lourd, mais parfois... seul le résultat compte.
LE CODE Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long ' 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 Const HWND_TOPMOST = -1 Private Const SWP_NOSIZE = &H1 Private Const SWP_NOMOVE = &H2 Private Const SWP_SHOWWINDOW = &H40 Const Flags = &H2 Or &H1 Or &H40 Or &H10 ' Dim hWndCalc As Long
Sub Command2_Click() 'calculatrice AUTRE APPLICATION Dim lResult As Long ' On Error GoTo erreur lResult = Shell("calc.exe") hWndCalc = FindWindow("SciCalc", "Calculatrice") lResult = SetWindowPos(hWndCalc, HWND_TOPMOST, 0&, 0&, 0&, 0&, SWP_NOSIZE Or SWP_NOMOVE Or SWP_SHOWWINDOW) Exit Sub ' erreur: If Err = 53 Then MsgBox "La calculatrice n'est pas installée, remédier... ", vbExclamation On Error Resume Next End Sub
Sub Command3_Click(index As Integer) ' SA PROPRE APPLICATION Dim r As Long dim site as string Site = "http://irolog.free.fr" ShellExecute Me.hWnd, "Open", site, "", App.Path, 1 r = SetWindowPos(Form1.hWnd, -1, 0, 0, 0, 0, Flags) ' toujours visible End Sub
r = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 0, Flags) ' n'est plus toujours visible
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Driss
"Jacques93" a écrit dans le message de news: u$
driss hanib a écrit :
Salut Jacques Non bien sur : je mettais le nom de la feuille et pas le caption.
c'est vrai, il aurait été plus logique de ma part de nommer la variable 'WndCaption"' :-)
J'essaie ce soir et je te tiens au courant
OK
--
Cordialement,
Jacques.
Bonsoir,
Je ne sais pas pour les mdi, mais si on met "Me", form1.show , Me, ça ne
s'améliore pas ?
Sinon, une fois j'ai résolu ça de façon différente, avec l'API "application
toujours au 1er plan à l'écran", quand j'appelais ma feuille qui ne voulait
pas passer, sur la feuille appelée j'invoquais l'API sus-cité, puis
j'annulais l'effet, et ça restait comme voulu.
C'est peut être un peu lourd, mais parfois... seul le résultat compte.
LE CODE
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
'
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 Const HWND_TOPMOST = -1
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_SHOWWINDOW = &H40
Const Flags = &H2 Or &H1 Or &H40 Or &H10
'
Dim hWndCalc As Long
Sub Command2_Click() 'calculatrice AUTRE APPLICATION
Dim lResult As Long
'
On Error GoTo erreur
lResult = Shell("calc.exe")
hWndCalc = FindWindow("SciCalc", "Calculatrice")
lResult = SetWindowPos(hWndCalc, HWND_TOPMOST, 0&, 0&, 0&, 0&, SWP_NOSIZE
Or SWP_NOMOVE Or SWP_SHOWWINDOW)
Exit Sub
'
erreur:
If Err = 53 Then MsgBox "La calculatrice n'est pas installée, remédier...
", vbExclamation
On Error Resume Next
End Sub
Sub Command3_Click(index As Integer) ' SA PROPRE APPLICATION
Dim r As Long
dim site as string
Site = "http://irolog.free.fr"
ShellExecute Me.hWnd, "Open", site, "", App.Path, 1
r = SetWindowPos(Form1.hWnd, -1, 0, 0, 0, 0, Flags) ' toujours visible
End Sub
r = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 0, Flags) ' n'est plus toujours
visible
"driss hanib" <dhanib@club-internet.fr> a écrit dans le message de
news:uZEdvM11KHA.140@TK2MSFTNGP05.phx.gbl...
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Je viens d'essayer avec le caption. Effectivement il trouve bien la
précédente instance, mais j'ai un curieux phénomène
le programme déjà présent s'affiche et disparait aussi vite.
J'enlevé le End mais j'ai le même phénomène..
Driss
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
u$hkcH11KHA.776@TK2MSFTNGP04.phx.gbl...
driss hanib a écrit :
Salut Jacques
Non bien sur : je mettais le nom de la feuille et pas le caption.
Je ne sais pas pour les mdi, mais si on met "Me", form1.show , Me, ça ne s'améliore pas ? Sinon, une fois j'ai résolu ça de façon différente, avec l'API "application toujours au 1er plan à l'écran", quand j'appelais ma feuille qui ne voulait pas passer, sur la feuille appelée j'invoquais l'API sus-cité, puis j'annulais l'effet, et ça restait comme voulu. C'est peut être un peu lourd, mais parfois... seul le résultat compte.
LE CODE Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long ' 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 Const HWND_TOPMOST = -1 Private Const SWP_NOSIZE = &H1 Private Const SWP_NOMOVE = &H2 Private Const SWP_SHOWWINDOW = &H40 Const Flags = &H2 Or &H1 Or &H40 Or &H10 ' Dim hWndCalc As Long
Sub Command2_Click() 'calculatrice AUTRE APPLICATION Dim lResult As Long ' On Error GoTo erreur lResult = Shell("calc.exe") hWndCalc = FindWindow("SciCalc", "Calculatrice") lResult = SetWindowPos(hWndCalc, HWND_TOPMOST, 0&, 0&, 0&, 0&, SWP_NOSIZE Or SWP_NOMOVE Or SWP_SHOWWINDOW) Exit Sub ' erreur: If Err = 53 Then MsgBox "La calculatrice n'est pas installée, remédier... ", vbExclamation On Error Resume Next End Sub
Sub Command3_Click(index As Integer) ' SA PROPRE APPLICATION Dim r As Long dim site as string Site = "http://irolog.free.fr" ShellExecute Me.hWnd, "Open", site, "", App.Path, 1 r = SetWindowPos(Form1.hWnd, -1, 0, 0, 0, 0, Flags) ' toujours visible End Sub
r = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 0, Flags) ' n'est plus toujours visible
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Driss
"Jacques93" a écrit dans le message de news: u$
driss hanib a écrit :
Salut Jacques Non bien sur : je mettais le nom de la feuille et pas le caption.
c'est vrai, il aurait été plus logique de ma part de nommer la variable 'WndCaption"' :-)
J'essaie ce soir et je te tiens au courant
OK
--
Cordialement,
Jacques.
Driss HANIB
salut jacques
je viens d'essayer sur le PC de mon boulot. C'est Nickel Je retenterai ce soir sur l'autre. merci
Driss "Jacques93" a écrit dans le message de news: %
driss hanib a écrit :
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire, y'a pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Je n'ai pas ce comportement ...
--
Cordialement,
Jacques.
salut jacques
je viens d'essayer sur le PC de mon boulot. C'est Nickel
Je retenterai ce soir sur l'autre.
merci
Driss
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
%23U294j11KHA.3320@TK2MSFTNGP04.phx.gbl...
driss hanib a écrit :
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire, y'a
pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la
précédente instance, mais j'ai un curieux phénomène
le programme déjà présent s'affiche et disparait aussi vite.
J'enlevé le End mais j'ai le même phénomène..
je viens d'essayer sur le PC de mon boulot. C'est Nickel Je retenterai ce soir sur l'autre. merci
Driss "Jacques93" a écrit dans le message de news: %
driss hanib a écrit :
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire, y'a pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Je n'ai pas ce comportement ...
--
Cordialement,
Jacques.
driss hanib
Salut Jacques
merci ton source marche très bien et me "facilite" les choses. Plus "classe" qu'un message Box Driss
"Jacques93" a écrit dans le message de news: %
driss hanib a écrit :
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire, y'a pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..
Je n'ai pas ce comportement ...
--
Cordialement,
Jacques.
Salut Jacques
merci ton source marche très bien et me "facilite" les choses.
Plus "classe" qu'un message Box
Driss
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
%23U294j11KHA.3320@TK2MSFTNGP04.phx.gbl...
driss hanib a écrit :
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire, y'a
pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la
précédente instance, mais j'ai un curieux phénomène
le programme déjà présent s'affiche et disparait aussi vite.
J'enlevé le End mais j'ai le même phénomène..
merci ton source marche très bien et me "facilite" les choses. Plus "classe" qu'un message Box Driss
"Jacques93" a écrit dans le message de news: %
driss hanib a écrit :
Bonsoir Jacques,
tu ne quittes pas le PC ? ;oO
Si, j'ai un DD à convertir de FAT32 vers NTFS, je vais laisser faire, y'a pas besoin de moi ;-)
Je viens d'essayer avec le caption. Effectivement il trouve bien la précédente instance, mais j'ai un curieux phénomène le programme déjà présent s'affiche et disparait aussi vite. J'enlevé le End mais j'ai le même phénomène..