我的程序里面,假设有两行语句
call aaa.smile
call aaa.cry
需要一个外部OCX控件支持,叫abc.ocx。
如何才能,在程序启动时先做判断,如果使用者的电脑里(假设为system32下)有abc.ocx,则让这2个语句生效,若没有,则语句不生效。因为我不想把abc.ocx打包到程序里面,也不想用安装包,就想让有abc.ocx的用户,才能用到abc.ocx的功能。
可是已经用了if语句来判断,可是运行时还是会提示run-time error,找不到abc.ocx。PS:不知道有没有什么错误处理,能够在这个问题发生时跳过去也可以。

解决方案 »

  1.   


    private function Test() as boolean
      on error goto ErrHandler
      call aaa.smile
      call aaa.cry 
      test=true
      exit function
    ErrHandler:
    end function能调用的就说明对方机器有ocx不然的话就直接到errhandler里面了
      

  2.   

    方法有几种.
    1、检查注册信息,OCX是需要注册才能用的;
    2、用DIR函数判断一下文件文件是否存在。
      

  3.   

    If Dir("d:\system32\abc.ocx") <> "" Then
    call aaa.smile 
    call aaa.cry 
    End If
      

  4.   

    (1)、启动时首先用Dir函数判断abc.ocx是否存在;
    (2)、abc.ocx存在则执行动态加载abc.ocx的语句;否则就不执行载abc.ocx的语句
    (3)、检查abc.ocx的实例是否存在
      

  5.   

    if objptr(aaa) then
      call aaa.smile
      call aaa.cry 
    end if