하지만 C #을으로 만들면 정말 쉽습니다.
우선 전 코드 프로젝트를 참고했습니다.
밴드 객체 -가. NET 2.0 Redux
http://www.codeproject.com/csharp/BandObjects20.asp?select=1819328&df=100&forumid=306921&exp=0
위의 소스 파일은 코드 프로젝트의 소스를 사용하기 쉽게 약간 수정한 파일입니다. 기본 구조는 코드 프로젝트 소스와 마찬가지로 BandObject 클래스를 상속받는 것입니다.
우선 다음 두 개의 레퍼런스를 추가하도록 합니다. 에서 COM의 MSHTML에 (마이크로 소프트 HTML Object Library를)과 SHDocVw (Microsoft Internet 컨트롤)입니다. 두 레퍼런스를 추가하면 개체 브라우저에서 이들 어셈블리를 볼 수있습니다.
다음 단계는 BandObject 클래스를 상속 받아 실제 툴바를 구현하는 단계입니다. 아래 코드는 사용자 참여 웹 툴바에서 사용된 예이며, 툴바와 BHO를 구현에 필요한 핵심적인 코드만 적어 놓았습니다. 의 GUID는 자신의 Guid를 적으세요.
1 [Guid ("719FAB8A - 8E67 - 915D - 4ba6 - 4EE1AD3A2CEE")]
2[BandObject ("사용자 참여 웹 툴바", BandObjectStyle.Horizontal | 3BandObjectStyle.ExplorerToolbar, HelpText = "사용자 참여 웹 툴바")] 4 공개 클래스 UpwBandObject : BandObject 5( 6 공개 UpwBandObject () 7( 8의 InitializeComponent (); 9 10minSize = 새로운 크기(100, 27); / / 최소 크기를 반드시 적어 줘야합니다. 11 12SetSiteEvent + = 새로운 SetSiteEventHandler (UpwBandObject_SetSiteEvent); 13ShowDWEvent + = 새로운 ShowDWEventHandler (UpwBandObject_ShowDWEvent); 14) 15 사설 무효 UpwBandObject_ShowDWEvent (bool fShow) 16( 17toolbarVisible = fShow; 18 19RefreshCurrentSite (); 20) 21 22 사설 무효 UpwBandObject_SetSiteEvent (개체 pUnkSite) 23( 24 만약 (pUnkSite! = 계열) 25( 26 / / 이벤트를 추가할 수 27webBrowserClass.BeforeNavigate2 + = 28 새로운 DWebBrowserEvents2_BeforeNavigate2EventHandler (webBrowser_BeforeNavigate2); 29webBrowserClass.NavigateComplete2 + = 30 새로운 DWebBrowserEvents2_NavigateComplete2EventHandler (webBrowser_NavigateComplete2); 31webBrowserClass.DocumentComplete + = 32 새로운 DWebBrowserEvents2_DocumentCompleteEventHandler () webBrowser_DocumentComplete; 33) 34 그 밖의 35( 36 / / 이벤트를 제거합니다 37-= webBrowserClass.BeforeNavigate2 38 새로운 DWebBrowserEvents2_BeforeNavigate2EventHandler (webBrowser_BeforeNavigate2); 39-= webBrowserClass.NavigateComplete2 40 새로운 DWebBrowserEvents2_NavigateComplete2EventHandler (webBrowser_NavigateComplete2); 41-= webBrowserClass.DocumentComplete 42 새로운 DWebBrowserEvents2_DocumentCompleteEventHandler () webBrowser_DocumentComplete; 43) 44) 45 46 사설 무효 webBrowser_BeforeNavigate2 47(개체 pDisp, 심판 개체 홈페이지, 심판 개체 깃발, 심판 개체 TargetFrameName, 48 심판 개체 PostData, 심판 개체 헤더, 심판 bool 취소) 49( 50) 51 52 사설 무효 webBrowser_NavigateComplete2 (개체 pDisp, 심판 개체 URL이) 53( 54) 55 56 사설 무효 webBrowser_DocumentComplete (개체 pDisp, 심판 개체 URL이) 57( 58) 59 60 사설 무효 탐색 (문자열 URL이) 61( 62 개체 플래그 = 계열; 63 개체 targetFrameName = 계열; 64 개체 PostData = 계열; 65 개체 헤더 = 계열; 66 67(URL을 webBrowserClass.Navigate 심판 플래그 심판 targetFrameName, 심판 PostData, 심판 헤더); 68) 69) |
사용 System.Windows.Forms; 사용 System.Runtime.InteropServices; 사용 SHDocVw; 사용 System.Reflection; 사용 System.Drawing; 사용 System.ComponentModel; 사용 Microsoft.Win32; |
UserControl을을 상속 받으면 비주얼 스튜디오에서는 디자이너로 폼을 편집할 수있습니다. 디자이너보기를 클릭해서 나오는 화면이 툴바에 나오게 될 화면입니다. 그 부분은 개발하고자하는 툴바에 맞춰서 디자인하시면됩니다.
마지막 단계는 실제 툴바를 익스플로러에 등록하는 과정입니다. 우선 프로젝트 속성의 어셈블리 정보에서 확인 어셈블리에서 COM - 표시을 체크하고 컴파일을합니다. 또 강력한 이름으로 어셈블리 서명을 위해 (. snk)가 필요한데 이것 역시 프로젝트 속성에서 만들 수있습니다.
그리고 빌드 후에 다음 명령을 실행시킵니다. (우편 빌드 이벤트에 등록 해놓 으면 되겠죠.)
$ (TARGETDIR 경우) cd
는 "C : \ 프로그램 파일 \의 Microsoft Visual Studio 8 \ SDK의 \ v2.0이 \ 휴지통 \ gacutil"/면 Interop.shdocvw.dll을
는 "C : \ 프로그램 파일 \의 Microsoft Visual Studio 8 \ SDK의 \ v2.0이 \ 휴지통 \ gacutil"/ $ (TargetFileName 경우)
는 "C : \ WINDOWS를 \ Microsoft.NET \ Framework에서 \ v2.0.50727 \ regasm"/ $ 등록을 취소 (TargetFileName)
는 "C : \ WINDOWS를 \ Microsoft.NET \ Framework에서 \ v2.0.50727 \ regasm"/ $ 코드베이스 (TargetFileName)
익스플로러를 열면 툴바 영역에서 등록된 툴바가 메뉴에 표시됩니다.
디버깅은 프로퍼티의 시작 액션에 externel 프로그램으로 익스플로러를 지정하면됩니다.
출처 : http://blog.daum.net/picus2/195