一个过程被阻止不往下运行了.如何结束这个过程?

解决方案 »

  1.   

    一般这个问题 我要做的话 都+个判断语句  if xxx then end sub  
    至于怎么判断这个过程是否已经结束,一般也是在语句中用代码判断
    比如你执行一个计算 a=$@#%$@#(算术式) 当计算出结果的时候把数据纯入一个空的变量,然后判断那个变量是否还是空的,不是空的表示已经得到计算的结果了.于是msgbox 过程结束
      

  2.   

    一个过程: 
       sub proc1()
            InternetConnect(,,,,)
       end sub'主程序
       sub main()
          msgbox ("开始运行!")
          proc1
          msgbox ("运行结束!")
          end
       end sub
    程序正常运行:
    1.显示 "开始运行!"
    2.运行proc1过程
    3.显示 "运行结束!"
    但目前运行到第二步,就停在这儿不往下运行了.我想怎样能在一定时间内继续往下运行直到end结束.
      

  3.   

    "InternetConnect"是一个api函数,程序在执行这一句时一直不往下运行了.
      

  4.   

    lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG,         vbNullString, vbNullString, 0&)
    lnginetconn = InternetConnect(lnginet, "ftp站点名", 0,"用户名", "密码", 1, 0, 0)
    运行到第二步有时正常,有时就不动了.
      

  5.   

    加DoEvents好像没用.因为DoEvents也要等lnginetconn = InternetConnect(lnginet, "ftp站点名", 0,"用户名", "密码", 1, 0, 0)运行完了才作反应啊.程序运行到这一行就一直在等待返回一个值啊.
      

  6.   

    我理解的意思是不管这句 lnginetconn = InternetConnect(lnginet... 运行如何都要继续向下走,而不等待返回信息如果我理解正确,那么请下看:可以变相去解决这个问题
    单做一个程序来运行 lnginetconn = InternetConnect(lnginet..... 这句
    然后在主程序中用shell调用
      

  7.   

    那只好改Winsock了,,因为用IE的HTTP和FTP功能本来就不是很稳定,不推荐用wininet.dll做Ftp客户端,不过你硬要做的话,可用Wininet.dll中的函数更改超时值~
      

  8.   

    改为下面的试试
    Public Const INTERNET_OPEN_TYPE_DIRECT = 1
    lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT,         vbNullString, vbNullString, 0&)
    If lnginet= 0 Then
      exit Sub
    End If
    InternetConnect......正常时InternetOpen会阻塞0.5~1分钟。太高级的办法我也没有。我的程序也是如此,但到0.5分钟左右就会返回呀!
      

  9.   

    谢谢jwh2004,lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT,         vbNullString, vbNullString, 0&)这一句没有问题,有问题的是下一句:InternetConnect......
    会阻塞很久啊.正常时0-22秒就返回值了.一旦超过22秒就只有断开网络了,否则就一直停在那儿了.
    zwf888:可用Wininet.dll中的函数更改超时值~,怎么个更改法啊?能说的更清楚点么?
      

  10.   

    你这样试试,另外再看看ftp服务器的默认ftp端口是否不是21呀!
    Const INTERNET_FLAG_PASSIVE = &H8000000  '被动 FTP 方式(非被动:0)
    lnginetconn = InternetConnect(lnginet, "ftp站点名", 0,"用户名", "密码", 1, INTERNET_FLAG_PASSIVE, 0)
      

  11.   

    你手工用dos下的ftp.exe登录看看是否成功
      

  12.   

    建议用PowerTcp Ftp Tool组件
      

  13.   

    使用PowerTcp Ftp Tool组件不会造成程序无响应的问题
      

  14.   

    关注  
    类市的还有EXCEL
      

  15.   

    也就是说,想让这个函数立即返回???这样吧,把这个过程放在一个线程里执行:public sub proc1()      '这个得放一个模块里了
            InternetConnect(,,,,)
    end subpublic sub ThreadRun()  '这个也是
       CreateThread(ByVal 0&, ByVal 0&, AddressOf proc1, ByVal 0&, ByVal 0&, ByVal 0&)
    end sub然后调用这个ThreadRun就可以直接返回了PS:没测试过......在IDE里应该不好调试,会挂.....