2010-12-02 3 views
1

CAB로 제공되는 ActiveX 컨트롤이 있습니다. 택시 이름과 clsid가있는 OBJECT 태그 인 HTML 페이지가 있습니다 (페이지의 다른 부분은 아직 없습니다).설치하는 동안 Internet Explorer가 ActiveX 설치 프로그램을 삭제하는 이유는 무엇입니까?

이로 인해 IE에서 허용하는 ActiveX 컨트롤을 설치하도록 요청합니다. CAB을 다운로드하고 설치 프로그램을 추출한 다음 실행합니다.

MSIEXEC이 실행 중이고 컨트롤을 설치하려고 시도하는 동안 IE는 .MSI 파일이있는 임시 디렉터리에서 파일을 삭제하기로 결정합니다. 경우에 따라 파일이 프로세스에 의해 잠겨져 삭제가 실패하고 설치가 성공하지만 대부분의 경우 삭제가 성공한 후 MSIEXEC은 MSI 파일이 없다는 오류를 기록합니다.

나는 PROCMON에서이 모든 일이 일어나는 것을 볼 수 있지만, 나는 그 이유를 모른다. Windows 및 IE의 여러 버전에서 재현 가능합니다. MSI를 삭제하는 것이 아니라 temp 디렉터리의 파일을 삭제하는 것입니다.

단 하나의 단서는 파일의 수정 날짜가 빌드 컴퓨터에서 만들어진 날짜라는 것입니다. 이것은 계속 업데이트 할 수있는 것이 아닙니다 (웹 서버의 CAB 내부에 있습니다). 수정 된 날짜를 유지하기 위해 매 5 분마다이 CAB를 구축 할 수는 없습니다. 그렇다고 생각하지 않습니다. 그것은 단서로 언급하고 싶었습니다.

IE가 임시 파일을 삭제하는 이유는 무엇이며이를 막을 수있는 방법이 있습니까?

+0

바이러스 검사기와 같은 외부 프로그램이 될 수 있습니까? (제쳐두고 : ActiveX ??? Arrghrh! 브라우저에서 !!!!! Arrrrgh !!! 증오! 증오! 증오!) – Spudley

+0

PROCMON에서는 삭제를 수행하는 IEXPLORE.EXE가 있음을 알 수 있습니다. 우리는 많은 다른 기계에서 재생산 할 수 있습니다. 심지어는 OS만으로도 청소할 수 있습니다. Windows 및 IE의 여러 버전. 나는 우리가 어떤 방식으로 이것을 요구하고 있다고 생각하지만, 어떻게 확신 할 수는 없다. –

답변

0

마지막으로 알아 냈습니다. 앱을 시작하기 위해 CAB에 연결 한 경우 종료 할 때까지 발신자에게 다시 돌아 가지 않아야합니다. 콘솔 응용 프로그램은 기본적으로 GUI 응용 프로그램을 사용합니다.

설치 관리자는 CAB 내부의 일반적인 setup.exe GUI이므로 실행이 시작된 즉시 바로 IE로 돌아갑니다. IE는 CAB의 임시 파일 정리를 시작합니다.

우리는 make 시스템 호출에 대한 명령 줄 인수를 취한 다음 콘솔 호출이 시작될 때까지 종료하지 않는 콘솔 응용 프로그램을 만들었습니다. 이렇게하면 setup.exe가 완전히 완료 될 때까지 IE가 정리되지 않습니다.