Страница: 1 |
Вообщем я делаю фтп клиент. Жму я типа открыть соединение, все окей. Показывает папку public_htm Жму на нее, он пишет, открываем, ну и типо открывает, только долго, так Windows XP считает, что это приложение повисло, и клигит его, как этого избежать? Даже при появлении окошка процессов, после появления которого обычно "оживают" все проги, которые ЯКОБЫ зависли, моя прога висит.
значит трабл где-то в коде... проверь цыклы. Вот к примеру код кнопки upload Private Sub zLokUp_Click() Все объявления лежат в отдельном модуле. После нажатия вот на эту кнопку аплоад, открывается окно, где типа отображается статус загрузки и все такое. Вот код этого окна Option Explicit Private Sub Command1_Click() Private Sub Download() z = lbCelkem.Caption Do Страница: 1 |
Вопрос: Люди, у меня трабл
Добавлено: 15.02.03 22:17
Автор вопроса: Aleksandr Skorodumov | Web-сайт:
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
root
Вопросов: 12
Ответов: 147
Web-сайт:
Профиль | | #1
Добавлено: 16.02.03 00:55
Номер ответа: 2
Автор ответа:
Aleksandr Skorodumov
ICQ: 161435166
Вопросов: 5
Ответов: 96
Web-сайт:
Профиль | | #2
Добавлено: 16.02.03 21:47
Dim i, X, d As Integer
Dim z, Y As Long
If session = 0 Or server = 0 Then
MsgBox "You Are Not Connected! Please Click The Connect Button.", vbInformation, App.Title
Exit Sub
End If
If ListView1.SelectedItem Is Nothing Then
MsgBox "No File Selected!"
Exit Sub
Else
X = 0
z = 0
txtInfo.SelText = Time & " > Colecting files information:" & vbCrLf
For i = 1 To ListView1.ListItems.Count
If ListView1.ListItems(i).Selected = True Then
Y = ListView1.ListItems(i).SubItems(3)
z = z + Y
X = X + 1
txtInfo.SelText = X & ".) " & ListView1.ListItems(i).Text & vbCrLf
frmProg.List1.AddItem ListView1.ListItems(i).Text
frmProg.List2.AddItem Y
frmProg.Label2.Caption = "Soubor: /" & X
frmProg.Command3.Caption = "Upload"
frmProg.Label4.Caption = "Bytes send:"
End If
Next i
frmProg.lbCelkem = z
frmProg.Show vbModal, Me
zRemRef_Click
End If
End Sub
Const sReadBuffer = 1024
Private hFile As Long
If hFile <> 0 Then
InternetCloseHandle hFile
MsgBox "Opertion Aborted.", vbInformation
End If
End Sub
Dim sBuffer As String
Dim FileData As String
Dim Ret As Long, SentBytes As Long, sAllBytes As Long, z As Long
Dim i As Integer, FF As Integer
Dim Kam As String, Ode As String
Dim Fs As Long, StartT As Long, t As Long, Cnt As Long, p As Long
Dim spRate As Single
spRate = 0
sAllBytes = 0
p = 0
With ProgressBar2
.Value = 0
.Min = 0
.Max = z * 1.024
End With
lbLeft.Visible = True
lbLeft.Caption = z / 1024
lbLeft.Refresh
lbCelkem.Caption = Format(z, "### ### ###.##") & " Kb"
Command1.Enabled = True
For i = 0 To List1.ListCount - 1
Fs = List2.List(i)
With ProgressBar1
.Value = 0
.Min = 0
.Max = Fs * 1.024
End With
Label1.Caption = "Downloading File: " & List1.List(i) & " / " & Fs & " bytù."
Label1.Refresh
lbCount.Caption = i + 1
lbCount.Refresh
Ode = Klic & List1.List(i)
Kam = strPath & List1.List(i)
frmmain.txtInfo.SelText = Time & " >Finishing File Transfer..." & vbCrLf & " > Downloading from: " & Ode & ", to: " & Kam & vbCrLf
frmmain.StatusBar1.Panels(2).Text = "Transfering File.Please Wait....."
hFile = FtpOpenFile(server, Ode, GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0)
If hFile = 0 Then
MsgBox "Can't open file path!", vbExclamation, "Invaild URL"
frmmain.txtInfo.SelText = Time & " > Can't open file path! Request canceled!" & vbCrLf
Exit Sub
End If
sBuffer = Space(sReadBuffer)
FileData = ""
SentBytes = 0
StartT = GetTickCount
InternetReadFile hFile, sBuffer, sReadBuffer, Ret
If Ret <> sReadBuffer Then
sBuffer = Left$(sBuffer, Ret)
End If
FileData = FileData + sBuffer
SentBytes = SentBytes + Ret
 
Номер ответа: 3
Автор ответа:
Агент Смит
ICQ: 147404128
Вопросов: 12
Ответов: 128
Web-сайт:
Профиль | | #3
Добавлено: 18.02.03 15:37
Есть не большая вероятность того, что за то время, пока открывается твоя папка на ftp и крутится какой-нить цикл в твоей проге, у винды истикает Time To Live для твоей программы (максимальное время неответа программой на системные запросы) и система ставит ей флаг, что она не отвечает... Но так же нельзя и исключить вероятность того, что какой-то из твоих циклов или функций виснит сама по себе - из недоделок твоих каких-то...