Bonjour tlm,

Me revoilà en train de trimer sur mon appli VB6...

Je cherche une solution à ce problème:
Dans l'appli que je reprend, une commande DOS est lancé avec l'objet WScript.Shell. Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Dim oShell As Object
Dim oShellLink As Object
Dim sExe As String
Set oShell = CreateObject("WScript.Shell")
Set oShellLink = oShell.CreateShortcut(sTempPath & "extractor.lnk")
oShellLink.targetpath = sPath & "\" & PATH_TO_EXE
oShellLink.WorkingDirectory = sTempPath
oShellLink.Save
Set oShellLink = Nothing
If Right$(Environ("comspec"), 7) = "cmd.exe" Then
    sExe = Environ("comspec") & " /C " & Chr(34) & sTempPath & "extractor.lnk" & Chr(34)
Else
    sExe = Environ("comspec") & " /C start /m " & Chr(34) & sTempPath & "extractor.lnk" & Chr(34)
End If
oShell.Run sExe, 0, True
 
'Wait for 100ms
subDelay 100
'If FILE_OUT is not yet created, wait 2s
If Not funFileExist(sTempPath & FILE_OUT) Then
    subDelay 2000
End If
Set oShell = Nothing
La commande lancée doit créer un fichier texte contenant les valeurs extraites par l'exe.
Ce qui me chiffone et -je pense- provoque une erreur 70 (pb d'accès au fichier), c'est que l'appli regarde après 100ms si le fichier existe.
S'il est absent, on attend 2 secondes et on repart.

Je pense que le fichier est encore ouvert en écriture et
que c'est pour cela que je reçoit une erreur 70 dans la tronche.
Toutes les variables et chemins sont valides, j'ai vérifié pas à pas.
Donc il me semble que le fichier out est créé mais que l'appli lit trop tôt dedans.
Je me tourne donc vers vous pour savoir s'il est possible de "suivre" l'exécution de ma commande ??

Merci d'avance.
Bonne journée