start program och ha koll på det
Hej
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 bladh
Svara
Sv: start program och ha koll på det
Jag skulle testa med detta
På raden precis framför den rad som startar processen skriver du
Screen.MousePointer = vbHourglass
.......
........
'sist i koden skriver du
Screen.MousePointer = vbDefault
Svara
Sv: start program och ha koll på det
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.
<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.
Svara
Sv: start program och ha koll på det
Det går att ordna så att programmet väntar på att den processen är klar. Men programmet fryser under tiden den väntar.
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>
Svara