Programming/ActiveX

JavaScript로 ActiveX 존재(설치)여부 파악하는 방법

smok95 2007. 12. 22. 23:42
반응형

저주받은 최고의 기술 엑티브엑스 ... 암튼..

상황에 맞춰 엑티브엑스를 설치하고 싶을때나
그 밖에 생각은 안나는데 많은 경우가 있을것 같습니다..

자바스크립트를 통해서 엑티브엑스가 설치가 되어 있는지를 파악하는 방법은 간단합니다.









try
{
       var axObj = null;
       axObj = new ActiveXObject("ActivexProgID.ActivexProgID");
       if(axObj)
       {
             alert('엑티브엑스가 존재합니다');
       }
}
catch(e)
{
       alert('엑티브엑스가 존재하지 않습니다');
}

위의 소스의 내용을 보시면...

 ActiveXObject를 이용하여 엑티브엑스의 객체를 axObj로 받아옵니다.

위에서 try, catch 를 사용한 이유는 ActiveXObject로 객체를 얻어올때 해당 객체가 존재하지않으면
null을 리턴하는것이 아니고 예외상황이 발생합니다.

그래서 try catch를 사용한 것입니다.

그리고 ActiveXObject() 에 넣어주는 인자는  우리가 지금 알고자 하는 엑티브엑스의 정보가 될텐데..
파일명이나 클래스아이디(CLSID)가 아닌 ProgID(프로그램ID)를 넣어주어야 합니다.

ProgID는 레지스트리편집기에서 확인을 할 수 있습니다.
아래는 윈도우에서 ajax객체로 사용되는 msxml4.dll 의 ProgID 를 캡쳐한 그림입니다.

아마 대부분 엑티브엑스의 CLSID나 파일명은 알지만 progid 이름은 잘 모르기때문에
레지스트리 편집기를 이용해 progid를 확인하시면 됩니다.

위에서 Msxml2.XMLHTTP.4.0
.4.0 은 해당 엑티브엑스( COM )의 버전입니다. 버전은 빼도 무방합니다.

ActiveXObject('Msxml2.XMLHTTP');     =      ActiveXObject('Msxml2.XMLHTTP.4.0');



[프로그래밍/ActiveX] - ActiveX 업데이트(파일교체)시 "시스템 재시작" 메시지가 뜨는이유



반응형