'---------------------------------------------------------------------------------------
' 过程名    : IsInIDE
' 时间      : 2010-2-7 12:59
' 作者      : 杨过.网狐.cn
' 功能      : 判断是否在vb6 IDE环境中执行
' 参考   : http://www.xtremevbtalk.com/archive/index.php/t-232343.html
'---------------------------------------------------------------------------------------
'
Public Function IsInIDE() As Boolean
Static bInIDE As Boolean
bInIDE = Not bInIDE
If bInIDE Then
    Debug.Assert IsInIDE() Or True
    IsInIDE = Not bInIDE
End If
End Function

解决方案 »

  1.   

    App.LogMode = 0'既说明是在ide中了
      

  2.   

    Public InIDE As BooleanPrivate Sub Main()
      On Error Resume Next
      Debug.Print 1 / 0
      InIDE = Err.NumberEnd Sub 
      

  3.   

    OK,我收回之前"楼上的有误"的说法,你这个办法和6楼patrickkong的办法都可作为备选吧
      

  4.   

    还有看运行的是不是 vb6.exe,5 就不行。
      

  5.   

    楼上说的这个vb6.exe不如前面的,你要调用api什么的,而且别人万一就用vb6.exe做程序名呢.还有的用EbExecuteLine这API调用的异常来判断,这也不太通用.有些项目,如某些VBA的那API可能就能运行
      

  6.   


    是的,它的好处在于不满足条件的代码不会编译到exe中...
    而且,改一个或几个参数,却方便了调试....
      

  7.   

    嗯,我想过你这种开发的方式,最好有个VBIDE的插件,能象VC里那样自己定义好debug,release这样的编译菜单,可以直接编译成相应的可执行文件