Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Люди, у меня трабл Добавлено: 15.02.03 22:17  

Автор вопроса:  Aleksandr Skorodumov | Web-сайт: www.beginning.ru | ICQ: 161435166 

Вообщем я делаю фтп клиент. Жму я типа открыть соединение, все окей. Показывает папку public_htm Жму на нее, он пишет, открываем, ну и типо открывает, только долго, так Windows XP считает, что это приложение повисло, и клигит его, как этого избежать?

Даже при появлении окошка процессов, после появления которого обычно "оживают" все проги, которые ЯКОБЫ зависли, моя прога висит.

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 root



Вопросов: 12
Ответов: 147
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 16.02.03 00:55

значит трабл где-то в коде... проверь цыклы.

Ответить

Номер ответа: 2
Автор ответа:
 Aleksandr Skorodumov



ICQ: 161435166 

Вопросов: 5
Ответов: 96
 Web-сайт: www.beginning.ru
 Профиль | | #2
Добавлено: 16.02.03 21:47

Вот к примеру код кнопки upload

Private Sub zLokUp_Click()
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

Все объявления лежат в отдельном модуле.

После нажатия вот на эту кнопку аплоад, открывается окно, где типа отображается статус загрузки и все такое. Вот код этого окна

Option Explicit
Const sReadBuffer = 1024
Private hFile As Long

Private Sub Command1_Click()
If hFile <> 0 Then
InternetCloseHandle hFile
MsgBox "Opertion Aborted.", vbInformation
End If
End Sub

Private Sub Download()
   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

z = lbCelkem.Caption
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

                Do
                    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-сайт: www.bbsoftware.ru
 Профиль | | #3
Добавлено: 18.02.03 15:37
Есть не большая вероятность того, что за то время, пока открывается твоя папка на ftp и крутится какой-нить цикл в твоей проге, у винды истикает Time To Live для твоей программы (максимальное время неответа программой на системные запросы) и система ставит ей флаг, что она не отвечает... Но так же нельзя и исключить вероятность того, что какой-то из твоих циклов или функций виснит сама по себе - из недоделок твоих каких-то...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам