Hej Jag skulle testa med detta du kan alltid använda en egen .bat-fil som t.ex. skapar en tom fil med ett visst namn, kör iso-skaparen, och sen tar bort filen när den är klar. Det går att ordna så att programmet väntar på att den processen är klar. Men programmet fryser under tiden den väntar.start program och ha koll på det
Jag har gjort ett program i VB som samlar ihop filer och gör en .iso fil av dem. Det sista görs genom att jag använder ett command line util som jag anropar med shell. Promblemet är att jag inte har någon koll på när det är klart. Jag kan visserligen visa dosfönstret, men jag skulle helst ha bättre koll än så.
Går det att ordna?
/peter bladhSv: start program och ha koll på det
På raden precis framför den rad som startar processen skriver du
Screen.MousePointer = vbHourglass
.......
........
'sist i koden skriver du
Screen.MousePointer = vbDefaultSv: start program och ha koll på det
<code>
@echo off
echo. > c:\wait.dat
c:\program\abc\makeiso <dina filer>
del c:\wait.dat
</code>
och sen t.ex. göra en do-while-loop medans filen existerar
kan dock bli lite problem om bat-filen avbryts.
<code>
Shell "dinbatfil.bat", vbHide
Do: DoEvents: Loop Until Fso.FileExists("c:\wait.dat") 'Vänta tills filen är skapad
Do: DoEvents: Loop While Fso.FileExists("c:\wait.dat") 'Vänta tills den är borta igen
'Klart
</code>
Finns mer accurasiva metoder, men de inkluderar att subclassa ett dos-fönster, vilket jag inte vet hur man gör på rak hand.Sv: start program och ha koll på det
Använde detta när jag startade ett program så det spelade ingen roll att programmet frös ett tag. Men det kanske måste till en annan lösning för dig.
<code>
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
strStr = App.Path & "\rar.exe" & " x -o+ """ & App.Path & "\" & f1.Name & """ """ & App.Path & "\nya\"""
WaitForSingleObject OpenProcess(SYNCHRONIZE, 0, Shell(strStr, vbHide)), INFINITE
'Och när den är klar med arbetet fortsätter den som vanligt
</code>