-
JavaScript로 ActiveX 존재(설치)여부 파악하는 방법Programming/ActiveX 2007. 12. 22. 23:42반응형
저주받은 최고의 기술 엑티브엑스 ... 암튼..
상황에 맞춰 엑티브엑스를 설치하고 싶을때나
그 밖에 생각은 안나는데 많은 경우가 있을것 같습니다..
자바스크립트를 통해서 엑티브엑스가 설치가 되어 있는지를 파악하는 방법은 간단합니다.
try
{
var axObj = null;
axObj = new ActiveXObject("ActivexProgID.ActivexProgID");if(axObj)
{
alert('엑티브엑스가 존재합니다');
}
}
catch(e)
{
alert('엑티브엑스가 존재하지 않습니다');
}위의 소스의 내용을 보시면...
위에서 Msxml2.XMLHTTP.4.0
ActiveXObject를 이용하여 엑티브엑스의 객체를 axObj로 받아옵니다.
위에서 try, catch 를 사용한 이유는 ActiveXObject로 객체를 얻어올때 해당 객체가 존재하지않으면
null을 리턴하는것이 아니고 예외상황이 발생합니다.
그래서 try catch를 사용한 것입니다.
그리고 ActiveXObject() 에 넣어주는 인자는 우리가 지금 알고자 하는 엑티브엑스의 정보가 될텐데..
파일명이나 클래스아이디(CLSID)가 아닌 ProgID(프로그램ID)를 넣어주어야 합니다.
ProgID는 레지스트리편집기에서 확인을 할 수 있습니다.
아래는 윈도우에서 ajax객체로 사용되는 msxml4.dll 의 ProgID 를 캡쳐한 그림입니다.
아마 대부분 엑티브엑스의 CLSID나 파일명은 알지만 progid 이름은 잘 모르기때문에
레지스트리 편집기를 이용해 progid를 확인하시면 됩니다.
.4.0 은 해당 엑티브엑스( COM )의 버전입니다. 버전은 빼도 무방합니다.
ActiveXObject('Msxml2.XMLHTTP'); = ActiveXObject('Msxml2.XMLHTTP.4.0');
[프로그래밍/ActiveX] - ActiveX 업데이트(파일교체)시 "시스템 재시작" 메시지가 뜨는이유반응형'Programming > ActiveX' 카테고리의 다른 글
[펌] 헤더정보를 이용한 C++에서의 컴포넌트(Component) 사용방법 (0) 2008.04.15 [펌] INF 파일구조 (0) 2007.12.26 ActiveX 업데이트(파일교체)시 "시스템 재시작" 메시지가 뜨는이유 (0) 2007.12.21