Kjøre programmer fra VB6
Hei!Jeg skal kjøre noen programmer sammtidig fra forskjellige mapper, dette fungerer fint men jeg får ikke programmet samtidig til å vente da det skal kjøre to ganger. Er det noen måte rundt dette?
Eks: Jeg har 10 enheter som skal ha data, disse skal det overføres til sammtidig, problemet er at samme enhet skal ha to overføringer og da krasjer det siden den allerede har en overføring.
'EKS
'Dette skal starte x ganger det er enheter
For i = 0 To antEnheter - 1
start program 1
start program 2 når en er ferdig.
next
'KODEn MIN
Public Sub push_SX(enhetNr, hostStr As String, pass As Integer)
Dim sti, programSti, comLine, tempStr, strLogFile As String
Dim retVal As Double
Dim fSize As Integer
'1 Opprett filen DEVTCP.IF hvor DDID = enhetsnr (Da kan alle overf. kjøre samtidig)
generer_DEVTCP_IF enhetNr
'2 Opprett filen DEVTCP.TXT med hostStr (IP)
generer_DEVTCP_TXT enhetNr, hostStr
If Len(enhetNr) < 2 Then
enhetNr = "0" & enhetNr
End If
sti = "ENHET_" & enhetNr
' slett errorloggfil
'strLogFile = App.Path & "\" & sti & "\ERROR_TCP.LOG"
'If FileLen(strLogFile) = 0 Then
' Kill strLogFile
'End If
programSti = App.Path & "\" & sti & "\"
ChDir programSti
'3 Generer DEVTCP via sxascii
comLine = "sxascii.exe /iDEVTCP.TXT /odevtcp DEVTCP.IF"
retVal = Shell(comLine, visVinduer)
If pass = 1 Then
If Not FileExists("PLST.SW") Then
'4 Hent PLST.SW som mal fil dersom den ikke eksisterer.
'comLine = programSti & "swcwin " & programSti & "devtcp H " & programSti & "PLST O " & programSti & "PLST.SW"
comLine = "swcwin devtcp H PLST O PLST.SW"
retVal = Shell(comLine, visVinduer)
' tøm plst.sw og la bare header være igjen
'comLine = programSti & "SW_ZAP.EXE " & programSti & "PLST.SW"
comLine = "SW_ZAP.EXE PLST.SW"
retVal = Shell(comLine, visVinduer)
End If
'6 Generer PLST fra PLST.TXT som parser har generert
' bør kjøres bare 1 gang
comLine = "sxascii.exe /i..\PLST.TXT /oPLST.SW PLST.IF"
retVal = Shell(comLine, visVinduer)
'8 Send PLST.SW til vekt
'comLine = programSti & "swcwin " & programSti & "devtcp S " & programSti & "PLST O " & programSti & "PLST.SW"
comLine = "swcwin devtcp S PLST O PLST.SW"
'Debug.Print comLine
'Debug.Print CurDir
retVal = ShellAndClose(comLine, visVinduer)
'retVal = Shell(comLine, visVinduer)
Else
'pass 2
If Not FileExists("ATST.SW") Then
'5 Hent ATST.SW som mal fil dersom den ikke eksisterer.
comLine = "swcwin devtcp H ATST O ATST.SW"
retVal = Shell(comLine, visVinduer)
' tøm atst.sw og la bare header være igjen
'comLine = programSti & "SW_ZAP.EXE " & programSti & "ATST.SW"
comLine = "SW_ZAP.EXE ATST.SW"
retVal = Shell(comLine, visVinduer)
End If
'7 Generer ATST fra ATST.TXT som parser har generert.
comLine = "sxascii.exe /i..\ATST.TXT /oATST.SW ATST.IF"
retVal = Shell(comLine, visVinduer)
'9 Hvis error....
'10 SEND ATST.SW til vekt
comLine = "swcwin devtcp S ATST O ATST.SW"
'Debug.Print comLine
retVal = ShellAndClose(comLine, visVinduer)
'retVal = Shell(comLine, visVinduer)
'11 Hvis error <> 0 opprett en egen logg fra alle overføringer.
End If
'Open debugFile For Append As #3
'Print #3, sti & ": " & comLine
'Close #3
End Sub