cs_gronon2
Messages postés43Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention16 septembre 2005
-
14 sept. 2005 à 01:05
cs_gronon2
Messages postés43Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention16 septembre 2005
-
15 sept. 2005 à 05:01
j'ai 2 programmes en VB6
prog1 et prog2
je lance prog1.exe
ensuite je lance prog2.exe
À son ouverture prog2.exe doit vérifier si prog1.exe est "ouvert"
si oui il m'envoie une réponse (message)
P__ROMEO
Messages postés294Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 9 mars 20061 14 sept. 2005 à 02:29
<TD id=HB_Focus_Element vAlign=top width=\"100%\" background=\"\" height=250 body UNSELECTAB<>Je n'ai pas la fonction qui verifi si un programme est ouvert ou pas. mais, si ca peut te dépanner
jusqu'a ce que tu trouve la fonction, pour quoi ne pas faire en sorte que programme1 cré un
fichier texte du non que tu veux, dans le répertoire que tu veux (assez camouflé) et qui sera suprimer toujours par programme1 à sa fermeture, ainsi, programme2 n'aura qu'a verrifier si le fichier texte existe.
ca fait 3 fonction aulieu d'une seul, mais, sa marche.
si j'ai ta fonction, je te fais signe. bonne chance
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 14 sept. 2005 à 03:17
Salut
Plusieurs solutions de toute façon avec les APIs :
- Si Prog1 possède une forme, il te suffit de rechercher le handle (identifiant unique) de cette forme en utilisant les APIs de recherche de handle par le texte du caption de cette forme
- Tu peux aussi rechercher le nom des exécutables en cours de run et l'identifier comme ça
Charge "api-guide" sur www.allapi.net qui est un utilitaire gratuit expliquant le paramétrage des APIs avec exemples en VB6.
Regarde les APIs comme FindWindow, GetWindowText ... et les autres dans la même catégorie.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_gronon2
Messages postés43Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention16 septembre 2005 14 sept. 2005 à 03:45
Assez ingénieux P-roméo
Mais si jamais prog1 "plante" sur un run time error alors il ne pourra éliminer le dit fichier....trop dangereux
'Merci Jack.....je fouille
P__ROMEO
Messages postés294Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 9 mars 20061 14 sept. 2005 à 04:27
Ma solution ne devait etre de toute facons qu'un pneu de secour, jusqu'a ce que l'on trouve un bon. et, jack, je verrai aussi ton site. merci.
aussi, tu pouvais en cas d'erreur mettre au debut:
OnError goto suprimer
.....
....
exit sub
suprimer:
fonction qui suprime ton fichier, et qui le programme sans trops salire ' si je me trompe, faitent signe.
end sub
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 14 sept. 2005 à 05:26
Salut Gronon2,
Tu peux adapter ce code qui check si une instance d'une appli est déjà lancée :
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 sept. 2005 à 07:47
ZLub, tu n'utilse tout de même pas le code que tu as fournis.....
en VB, tu as tout simplement :
app.PrevInstance
qui indique si une version d'un Exe tourne....
pour le probleme evoqué ici, un FindWindow est de mise ici
cs_gronon2
Messages postés43Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention16 septembre 2005 15 sept. 2005 à 05:01
Je vais être plus précis dans ma demande
prog1.exe fait des calculs de mensualités pour des prêts sur achat d'automobiles
prog2.exe fait des mises à jour du prog1.exe
lorsque je lance prog2.exe, celui-ci doit vérifier si prog1.exe est "ouvert" car comme vous le savez il est impossible d'écrasé un fichier lorsque celui-ci est "ouvert" en mémoire
comment dois-je utiliser "App.PrevInstance " dans prog2.exe pour faire cette vérification sur prog1.exe