Hej Om du har många o ungefär lika stora file i mapparna är det nog bättre att kopiera dem en och en i en loop där du kan öka på en progressbar. Då kan du visa exakt hur långt den har kommit Alternativ 2 verkar vara intressant. Finns det något exempel på hur det kan fungera. Nu antar jag bara rakt av att det är vb6 du sitter i... Kolla mitt gamla uppskickloopa till dess att en fil finns
Knåpar på ett vba-snurra som kopierar filer. I slutet av snurran så skapar jag en logfil.
Problemet är att det kan ta lite tid att kopiera och jag vill meddela användaren att datorn inte har hängt sig. Skulle vilja ha hjälp med att öka på "PtcDone" med 0.01 (progressbar) varje sekund fram tills dess att "fil" existerar. Detta ska ske parallellt med att filerna kopieras.
'Processcadden lokal
If .ActiveProfile = "IDOK_PS573WE-AKZ-LOCAL" Then
fil = idoklocal & "\Install\log_081115-pro.txt"
If (objFSO.FileExists(fil)) Then
Exit Sub
Else
.ActiveProfile = "<<Unnamed Profile>>"
dblank = idokRuntime & "\INSTALL\ARG\IDOK_PS573WE-IDS-LOCAL.arg"
.ImportProfile "IDOK_PS573WE-IDS-LOCAL", dblank, True
PctDone = 0.5
UserForm1.Caption = "Kopierar Processcad..."
UserForm1.Show
mappL = idoklocal & "\PS573WE"
mappS = idokRuntime & "\PS573WE"
objFSO.CopyFolder mappS, mappL
filS = idokRuntime & "\install\IDOK_ENV-LOKAL.SDF"
filL = idoklocal & "\PS573WE\IDOK_ENV.SDF"
objFSO.CopyFile filS, filL
objFSO.CreateTextFile fil, True
text = "Laddar ner processcadden. Samt modifierad idok_env.sdf"
SkrivText
.ActiveProfile = CurrProfile
End If
End If Sv: loopa till dess att en fil finns
Alt. två använd en Timer (finns grafisk komponent) som du ställer in på att öka en progressbar var 1 sec, som du startar när du börjar kopiera och stoppar när du är klar.
Alt. tre är att använda SHFileOperation i Shell32.dll
se exempel:
http://support.microsoft.com/kb/165919Sv:loopa till dess att en fil finns
Sv: loopa till dess att en fil finns
Det finns en kontroll som ser ut som en klocka ungefär, dra in den på ditt formulär och sätt intervallet till 1000 (ms) samt enable, false. Dubbelklicka på den för att lägga in koden där du ökar upp din Progressbar och sen för att starta den i koden skriver du MyTimer.Enable = true och false för att stoppa.Sv:loopa till dess att en fil finns
Programarkivet:Scanna Dir leta filer
Tror du kan bygga om efter behov.