Je lance une Access ADE, en utilisant le programme FE de Tony Toews. Les programmes AutoFE vont, si une version plus récente est disponible, copier la dernière version de l'ADE à partir du serveur, puis le lancer. Mon code ressemble:Vérifiez si le programme shell est ouvert
Dim stAutoFE As String = "V:\Apps\autofe\startmdb.exe /cmd /inifile: " & """" & "V:\Apps\AutoFE\SSP.ini" & """"
Shell(stAutoFE, AppWinStyle.Hide, True)
System.Threading.Thread.Sleep(1000) ' Time delay
Dim oAccess As Access.Application
oAccess = GetObject(SSP_Path) ' The ADE file location
je devais mettre le retard de sommeil, faute de quoi le GetObject ouvrirait la ADE une seconde fois. Mais je ne sais pas combien de temps prendra la copie du serveur, donc j'ai besoin de retirer cette ligne de veille et de vérifier que l'ADE a ouvert. Comment puis-je faire cela? Merci Diarmuid
Merci. Je l'ai essayé ce qui suit: Dim myProcess Comme processus = Nothing myProcess = Process.Start (stAutoFE) Bien que non myProcess.HasExited myProcess.WaitForExit (100) myProcess.Refresh() End While myProcess.Close() Mais Process.Start échoue pour moi - j'obtiens le message d'erreur: "Le système ne peut pas trouver le fichier spécifié" même si c'est le même chemin que j'avais pour le Shell. Que devrais-je faire différemment? Merci – Awesomoprog
Got it en essayant myProcess = Process.Start (stAutoFE, stParms) mais toujours le même problème avec la commande Shell. Il pourrait être le 'startmdb.exe' est fini, mais le Msaccess.exe n'est pas. – Awesomoprog
Utilisez-vous 'WaitForExit'? –