유돌이

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2008. 12. 19. 21:18 비법전수

[ 인터넷 익스플로러 Toolbar Buttons 추가하는 방법 ]

본 글은 마이크로소프트 인터넷 익스플로러의 User 인터페에스의 툴바 버튼을 어떡게 추가하는지 그 방법을 설명하고 있다. 툴바 버튼은 마이크로소프트 Win32 어플리케이션이나 또는 익스플로러 바 등 어떤 방식으로도 가능하다. 여러분이 새로운 메뉴 아이템을 추가하고자 한다면 아래와 같은 방법으로 설치가 가능하다. 기본적으로 사용자 툴바는 인터넷 익스플로러에서는 나타나지 않는다.
이 툴바 버튼들은 Customize Toolbar 대화상자의 Left side에 나타날 것이다. 
인터넷 익스플로러에 툴바 버튼을 추가하고자하는 개발자는 레지스트리와 GUID(globally unique identifiers)에 대해서 어느 정도 알고 있어야 한다.

.ico 파일은 두개를 설정해줘야 하는데 툴바 버튼은 두개의 active(color) icons과 default(grayscale)  icons으로 설정이 된다.
리소스 내에 있는 아이콘과 문자열은 리소스의 경로와 포맷( path, resource_id)안에서 식별자를 참조할 수 있다.  예를 들면 만약 Example.dll 파일의 123이라는 스트링 리소스를 사용하기를 원한다면, "Example.dll, 123" 이런식으로 사용할 수 있다는 의미다.
먼저 Globally Unique identifier (GUID) 값을 생성해야 한다. GUID 값은 Guidgen.exe (Microsoft Visual Studio에 포함되어 있음)또는 Uuidgen.exe (Software Development Kit (SDK) 명령어를 이용해서 임의의 GUID를 생성할 수 있다.  아래 레지스트리에 새로운 키값을 생성한다.(GUID 이름이 있는 것으로)

1. <Your GUID> 란에 만들고자하는 GUID 값을 입력한다.

HKEY_LOCAL_MACHINESoftwareMicrosoftInternet ExplorerExtensions<Your GUID>

2. 다음은 옵션부분으로 새로운 스트링을 만들어서 넣는다. GUID 다음에 Default Visible 키값을 생성한다.

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>

3. 익스플로러에 디폴트로 설정되는 툴바 버튼을 만들기 위해서는  Default Visible를 'Yes'로 설정한다.

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>Default Visible

만약 사용자가 임의로 만든 툴바가 자동적으로 나타나지 않으면, Customize Toolbar 대화상자를 선택하면 툴바가 나타난다.  

4. ButtonText라는 새로운 스트링을 만든 후  ButtonText 값을 설정한다. 

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>ButtonText

5. HotIcon 스트링값을 생성(.ico 파일이 있는 full path의 HotIcon 값을 설정)

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>HotIcon

6. Icon new string을 생성한다.(3가지 grayscale icon이 있는 .ico 파일의 Icon 값을 설정)

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>Icon

추가적으로 새로운 레지스트리 키 등록의 초기단계가 완료된 후에는 기타 키값을 추가할 수 있는데, 툴바설정과는 별개로 COM 오브젝트에 대한 추가하는 작업이 가능하다.

COM Objects
Explorer Bars
Executable Files
COM Objects

다음 단계는 Component Object Model (COM) 오브젝트 구현하기 위한 툴바 버튼을 만드는 것이 필요하다.

[COM object 등록 과정]

1. 다음 레지스트리 경로에 CLSID 스트링을 만든 후  CLSID를 {1FBA04EE-3024-11d2-8F1F-0000F87ABD16} 설정한다.

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>CLSID

2. 다음 레지스트리 경로에 ClsidExtension를 생성한 후  ClsidExtension를 COM object의 GUID 값을 설정한다 .

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>ClsidExtension

3. 추가로 COM Obejct는 IOleCommandTagert 사용해야 한다.
현재 인터넷 익스플로러에 출력되고 있는 페이지 화면의  Dynamic HTML (DHTML) 오브젝트 모델에 접근하기 위해서는 IObjectWithSite COM 오브젝트가 필요하다.
IOleCommandTarget의 메소드는 IOleCommandTarget::Exec를 제외한 표준방식으로 사용한다.
IOleCommandTarget::Exec COM 오브젝트의 메소드는 nCmdID=1로 셋팅되어 호출이 되어진다.
만약 툴바 버튼을 클릭하고 nCmdID=2로 셋팅이 되고 메뉴 아이템은 클릭이 되어진다.
IObjectWithSite 사용이 되어질 때, 인터넷 익스플로러는 IObjectWithSite::SetSite를 호출하고 IShellBrowser로 인자값을 넘겨준다.

Explorer Bars를 만드는 과정

COM 오브젝트를 사용하여 Open되는 툴바 버튼을 만들기 위한 과정은 다음과 같다.

1. 새로운 GUID 값을 생성한 후 레지스트리에 다음과 같이 셋팅한다.  

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>CLSID

CLSID 값을 {E0DD6CAB-2D10-11D2-8F1A-0000F87ABD16}로 설정

2. BandCLSID라는 스트링을 만든 후 BrandCLSID 값을 익스플로러 바의 CLSID 값으로 설정으로 설정한다.

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>BandCLSID

3. 메뉴 아이템을 가지는 모든 익스플로러 바는 자동적으로 View 메뉴를 추가하는 방법

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>CLSID

CLSID value를 {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}로 설정

4. 스크립트 스트링을 생성한 후 다음과 같이 셋팅한다.

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>스크립트

실행시킬 스크립트의 전체 경로를 설정하고 CLSID와 실행시킬 Exec 키 값을을 다음과 같이 설정한다.

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>CLSID

5. Exec 스트링 값을 생성한 후 실행 .exe파일의 실행시키기위한 전체 경로를 설정

HKLMSoftwareMicrosoftInternet ExplorerExtensions<Your GUID>Exec
posted by 유돌이