첫번째 방법

debug 개체 사용

debug 개체는 다자인 타임에는 실행되지만

컴파일할때 이 이 제외된 상태에서 컴파일이 되기 때문에 이를 이용한다.

 

on error resume next

debug.print 1/0 ' 일부러 에러 발생시킨다

if err.number > 0 then msgbox "디자인 타임" else msgbox "런타임"on

on error goo 0

 

두번째 방법

API FindWindow를 사용

IDE 환경에서는 VB창이 떠있는것을 사용하여

If FindWindow("클래스명IDEOwner", vbNullString) > 0 Then msgbox "디자인타암" Else msgbox "런타임"

 

세번째 방법

API GetModuleHandle 사용

현재 프로세스에서 로드된 모듈을 확인한다.

Dim ModuleHandle As String Dim EnvFileName As String Dim EnvVal As Variant Dim ReturnVal As Long Dim i As Long EnvVal = _ Array("vb.exe", _ "vb32.exe", _ "vb5.exe", _ "vb6.exe") For i = LBound(EnvVal) To UBound(EnvVal) ModuleHandle = EnvVal(i) ReturnVal = GetModuleHandle(ModuleHandle) If ReturnVal <> 0 Then EnvFileName = ModuleHandle TestEnvironment = True Exit For End If Next if TestEnvironment then msgbox "디자인타임" else msgbox "런타임"

+ Recent posts