2010-06-21 2 views
2

Visual Studio 설치 및 배포 프로젝트를 통해 패키징 한 IE BHO가 있습니다. 이제 NSIS 설치 프로그램을 통해 패키지를 만들고 싶습니다.NSIS 설치 프로그램을 통해 BHO 등록

내 BHO는 다음과 같은 방법으로 등록 된이 동안

[ComRegisterFunctionAttribute] 
    public static void Register(Type t) 
    { 
     string guid = t.GUID.ToString("B"); 

     RegistryKey rkClass = Registry.ClassesRoot.CreateSubKey(@"CLSID\"+guid); 
     RegistryKey rkCat = rkClass.CreateSubKey("Implemented Categories"); 

     string name = toolbarName; 
     string help = toolbarHelpText; 

     rkClass.SetValue(null, name); 
     rkClass.SetValue("MenuText", name); 
     rkClass.SetValue("HelpText", help); 

     if(0 != (style & BandObjectStyle.Vertical)) 
      rkCat.CreateSubKey("{00021493-0000-0000-C000-000000000046}"); 

     if(0 != (style & BandObjectStyle.Horizontal)) 
      rkCat.CreateSubKey("{00021494-0000-0000-C000-000000000046}"); 

     if(0 != (style & BandObjectStyle.TaskbarToolBar)) 
      rkCat.CreateSubKey("{00021492-0000-0000-C000-000000000046}"); 

     if(0 != (style & BandObjectStyle.ExplorerToolbar)) 
      Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Toolbar").SetValue(guid,name); 

    } 

이 VS에 의해 이루어집니다 MSI 설치 관리자에 의해 처리되고, 나는 같은 사용 NSIS를 할 수있는 방법을 알고 싶어요?

도움이 될 것입니다.

카필은

답변

1

명시 적으로 모두 설치하는 동안 regsvr32.exe를 호출해야합니다 (등록) 및 제거 (등록 취소).

예컨대

Exec 'regsvr32.exe /s "$INSTDIR\your_bho.dll"' 

... 및 제거시 : 설치 중에

Exec 'regsvr32.exe /s /u "$INSTDIR\your_bho.dll"' 

... your_bho.dll는 BHO의 파일 이름입니다. /s 플래그 btw는 명령이 최종 사용자에게 대화 상자를 표시하지 못하도록합니다. regsvr32.exesystem32 디렉토리에 있으므로 경로를 염려 할 필요가 없습니다.

1

NSIS registry plug-in을 사용하면 유용한 도우미 기능을 충분히 사용할 수 있습니다.

그리고 RegDLL을 사용하여 DLL을 등록하십시오.