Microsoft MVP성태의 닷넷 이야기
글쓴 사람
박평옥 (buruss at yahoo.co.kr)
홈페이지
첨부 파일
 

안녕하세요? 네티모의 박평옥이라고 합니다.

기억나실지 모르겠지만, 전에 바로가 툴바라고 제작해 주셨었죠^^. 제가 이번에 이 툴바를 비스타까지 지원되도록 VB6으로 다시 개발하고 있는데요, 정성태님의 코드를 많이 참고하고 있답니다.^^

하여튼, 문제는 제목에 있는 증상인데요, 좋은 아이디어 있으신지 싶어서 이렇게 조언 부탁드리고자 합니다.

테스트 환경은 비스타 32bit SP1, IE7, IE 보호 모드 활성화, UAC활성화 상태입니다. 바탕화면의 기본 Internet Explorer 아이콘을 실행하면 위 증상이 없는데요, URL 단축아이콘을 실행하는 경우에는 iexplore.exe 프로세스가 잠깐 두 개가 뜹니다. 그리고 첫번째 프로세스는 두번째 프로세스가 실행된 직후 바로 종료가 되어서 사용자는 하나만 실행되는 것으로 착각하게 됩니다.

하지만, 내부적으로는 모든 BHO나 툴바들이 각 iexplore.exe 프로세스마다 다 로드가 되더라구요. 이게 다른 툴바들에게는 문제가 되지 않겠지만, 저희 툴바에는 웹브라우저가 내장되어 있어서 로딩하자마자 바로 Navigate2 메서드를 호출하는데, 이것 때문에 첫번째 프로세스가 종료되지 못하고 화면에는 보이지 않는 상태로 좀비 상태가 되어 버리는 증상이 발생합니다. (Navigate2 메서드 호출하지 않으면 정상 동작합니다.)

그래서 iexplore.exe 가 작업관리자 프로세스 탭에 두 개 떠있게 되구요, 또한 화면에 보이는 두번째 프로세스의 브라우저에도 이상하게 탭이 두 개 표시되고, 이 브라우저를 종료시켜도 처음 실행되었던 프로세스는 여전히 메모리에 남게 됩니다.

IE 보호모드를 끄거나, UAC를 끄면 이 증상이 없는 것으로 보아서 Microsoft에서 비스타 IE7의 보안을 강화하면서 의도적으로 이렇게 동작시키는 것 같은데요, 비스타의 동작 방식을 프로그램적으로 변경하는 것은 가능성이 희박해 보이고, 제 생각에는 툴바 내부에서 자신이 첫번째 프로세스에서 로드되는 것인지, 아니면 두번째 프로세스에서 로드되는 것인지를 판단할 수만 있다면 첫번째 프로세스에서 로드되는 툴바에서는 Navigate2 메서드를 호출하지 않으면 되지 않을까 생각했거든요.

그런데, 아무리 두 프로세스를 비교해봐도 차이점이 보이지 않아서 고민하고 있습니다. 설명이 잘 된 건지 모르겠습니다만, 하여튼 뭔가 두 프로세스간의 차이가 있을 거라고 생각이 드네요. 여기에 대해서 어떤 의견이든지, 간단한 힌트라도 알려주시면 무척 고맙겠습니다.

아무튼 항상 건강하시고 하시는 일 번창하시기 바랍니다. 수고하세요.~~








[최초 등록일: ]
[최종 수정일: 3/18/2009]


비밀번호

댓글 작성자
 



2009-03-19 10시12분
안녕하세요. 기억나지요. ^^ 당연히.

이 부분은 저도 한번 살펴봐야겠는데요.
저도 몇가지 테스트를 해보고 나서 답변을 다시 드리겠습니다.

그 전에, 제가 다음과 같이 테스트 해보면 되는 건가요?

1. 바탕화면에 "http://msdn.microsoft.com" 에 대한 URL 바로가기 아이콘을 생성한다.
2. BHO를 만들고 SetSite메서드에서 메시지 박스를 띄워본다.
3. 1번에 생성한 바로가기를 더블 클릭해서 메시지 박스가 2번 뜨는지 확인한다.
4. 만약 2번이 뜨는 것이 확인되면, 한번만 뜨는 방법이 뭔지 찾아낸다.
kevin25
2009-03-21 05시55분
[박평옥] ㅎㅎ 기억하고 계시네요.^^
네, 말씀하신 순서가 맞습니다. UAC와 보호모드도 켜져 있는지 꼭 확인하세요.
결과에 상관없이 답변 주시면 감사하겠습니다.^^
[guest]

... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4966포플러3/30/20189692    답변글 [답변]: C# 응용프로그램 (Winform)에서 unhandledexception 발생시 프로그램이 죽는 현상 이외에 재부팅될 수도 있을까요? [1]
4961김민욱3/26/201810614레이더 뷰어의 구현 방법(이미지 확대 축소 관련) [2]
4960hurd...3/18/201810366OCX 관련한 질문을 드리고자 합니다. [1]
4959익명3/10/20189400교재 199page 델리게이트와 object를 이용한 범용 정렬 코드 [1]
4957멍멍이2/13/201810022System.Console - WriteLine함수의 제너릭 사용 [1]
4956김성대2/12/20189351asp.net 질문입니다. [1]
4955웅이2/12/20189805[삭제] WPF에서 list 속도 향상하는 방법이 있을까요?
4954초보자2/8/201811620FFT Library 사용 [1]
4950ASP열공2/5/20189376asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4951ASP열공2/6/201810372    답변글 [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4952ASP열공2/7/20189529        답변글 [답변]: [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4953ASP열공2/7/20189045            답변글 [답변]: [답변]: [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다.
4949김성대1/31/201810730비동기 질문입니다. [3]파일 다운로드1
494880511/31/20189520C# 7.1책 보다가 질문드립니다 [1]
4947김성대1/30/201810708[삭제] 비동기 질문입니다. [2]파일 다운로드2
4946윤현수1/29/201810261비동기 TCP통신 데이터 문제 [4]파일 다운로드1
4945김성대1/26/20188794비동기 질문입니다. [1]파일 다운로드1
4944popo1/25/20188224[삭제] 스레드 안에서 Window Visibility 변경시 DialogResult 오류 질문
4943김성대1/22/20189190FromAsync 질문입니다. [1]
4942박현일1/19/201810793WPF 공부중 모르는 문법이 있어서요~^^; [2]
4941김성대1/18/20189073비동기예약어 실행오류관련입니다. [1]
4940plzh...1/10/20189957webbrowser2 를 이용한 sns 로그인 구현 관련 문의 [2]
4939이성일1/4/201811458ClickOnce 배포 후 업데이트 시 발생하는 오류에 대해 질문 드립니다. [2]
4938김성대1/3/20189526채팅 프로그램관련 질문입니다. [9]파일 다운로드1
4937Ques...1/3/201811910C# CPU 사용량 한계치 늘리는 방법 [2]
4936무개1/3/20189036책 내용 인용하는 것에 관한 질문이있습니다. [1]파일 다운로드1
... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...