04. april 2002 - 10:54Der er
4 kommentarer og 2 løsninger
Forsæt mens filer kopieres
Jeg har lavet et program der kører i netværk via ADSL. Problemet er at der udføres vedligeholdelse på klienter ved kopiering af filer fra serveren, og dette tager tid. Når en bruger f.eks. har udført en rettelse kan der gå 4-5 sekunder før markøren frigives til at fortsætte (mens filer kopieres). Jeg kan huske jeg engang her så omtalt en kommando der kunne frigive markør så en bruger f.eks. kunne indtaste i felter. Jeg har også søgt både på 'Eksperten' og i mit eget arkiv over 'gode' spørgsmål. Hvad er den kommando?
Det kræver, at du laver en ActiveX Server (exe-fil), hvor selve kopieringen af filen foretages.
Dit problem er, at Visual Basic er single threaded, dvs. alt kører i den samme tråd. Derfor fortsætter koden ikke før, at den kaldte proceudre (kopieringen) er fuldført.
Husk, at det skal være en ActiveX EXE. Desuden skal du have en procedure i den, som du kalder fra klienten. Denne procedure skal starte en timer, og så skal selve kopieringen foregå i timer-eventet.
>>Ulrina. Det var faktisk DoEvents jeg havde i tankerne. Selv om Benny har svaret om mulighederne, vil jeg alligevel prøve. I øvrigt har jeg ikke lavet en ActiveX, det er jeg for dum til, jeg har lavet en form, der ikke er visible og som selv lukker når filkopieringen er udført. Det fungerer, men kunden med ADSL har ikke svaret på om det går hurtigere.
Der er et modul med erlæring af variable og så: Private Sub Form_Load()
n = 0 Open App.Path & "\jkfaerge.ini" For Input As #1 Do While EOF(1) = False Line Input #1, inidata(n) n = n + 1 If n >= 21 Then Exit Do Loop Close #1
serversti = inidata(0) For a = 0 To 2 klisti(a) = inidata(a + 10) If Right(inidata(a + 10), 1) = "\" Then labkontr.Caption = labkontr.Caption & klisti(a) & vbCrLf Next a
Open App.Path & "\status.net" For Input As #2 Line Input #2, serverstatus Close #2
If serverstatus = "nede" Then x = MsgBox("Netstatus er 'nede', der kan ikke udføres opdatering af server og øvrige klienter.", 48, "Medd. fra fil-opdaterings programmet.") GoTo fejl End If
On Error Resume Next FileCopy App.Path & "\book.bak", serversti & "book.dat"
For a = 0 To 2 If Right(klisti(a), 1) = "\" Then FileCopy App.Path & "\book.bak", klisti(a) & "book.dat" End If Next a
End Exit Sub fejl: Filopdat.Visible = True
End Sub
M.v.h. Jørn
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.