[HWP]한글2005 이상에서 문서파일 접근 보안경고 창 처리 > C#/.Net/Blazor/IIS

본문 바로가기
사이트 내 전체검색

C#/.Net/Blazor/IIS

[HWP]한글2005 이상에서 문서파일 접근 보안경고 창 처리

페이지 정보

작성자 sbLAB 댓글 0건 조회 5,148회 작성일 18-07-25 17:56

본문


[구현]

1. 한글2005이상 hwpctrl.ocx 부터는 hwp 문서 파일접근 보안경고창이 뜸

2. 한글과컴퓨터에서 제공하는 첨부 dll 를 레지스트리에 등록한 후 등록한 키 값을 hwpctrl 컨트롤을 사용하는

    개발어플에 알려주면 됨(아래코드사용)

 

※ 아래코드를 보면  axHwpCtrl1.RegisterModule("FilePathCheckDLL", key_str); 를 통해서 어플에 자동인증 등록을

     해주는데 try~catch 처리를 해줘야 함

     ←  한글2002는 axHwpCtrl1.RegisterModule(..); 명령에서 에러남(RegisterModule(..)은 2005에서 추가됨)

 

※ pass0000heck 키값과, pass0000check.dll 값은 사용자에 맞게 이름을 수정할것!(다른 어플과 중복을 피함)

 

[Code]       

        /// <summary>
        /// 한글2005이상 파일접근경고 제거 
        /// 예) hwpctrl_reg_pass0000check(@"c:\eagle_eye", "pass0000heck", "pass0000check.dll");
        /// </summary>
        /// <param name="exe_pathstr">pass0000check.dll 파일이 있는 실행파일 경로 끝에 \ 넣지말것</param>
        /// <param name="key_str">pass0000check  키값(FilePathCheckDLL에 등록됨)</param>
        /// <param name="value_dll_str">pass0000check.dll 실제파일</param>


        private void hwpctrl_reg_pass0000check(string exe_pathstr, string key_str, string value_dll_str)
        {
            try
            {
                string myProjectPath = exe_pathstr;
                const string HNCRoot = @"HKEY_Current_User\Software\HNC\HwpCtrl\Modules";
                if (Microsoft.Win32.Registry.GetValue(HNCRoot, key_str, "Not Exist").Equals("Not Exist"))
                {
                    Microsoft.Win32.Registry.SetValue(HNCRoot, key_str, myProjectPath + "\\" + value_dll_str);
                }
                axHwpCtrl1.RegisterModule("FilePathCheckDLL", key_str);
            }
            catch { 
                //ignore catch
            }
        }

 

[그러나]

우리 로직에도 문제가 있다.

위와 같이 하면 대부분은 정상적으로 레지스트리에 등록이 되지만.. 

윈도우 7나 PC의 보안정도에 따라 정상등록 되지 않는 경우가 있다.

 

이때는 개발자가 사용하는 프로그램 패키지 설치파일 인스톨러툴의 레지스트리 설정기능에서 

프로그램 설치와 동시에 레지스트리에 필요한 값이 강제 등록 되도록 하면 된다. 



첨부파일

댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
233
어제
342
최대
1,279
전체
218,468

그누보드5
Copyright © sebom.com All rights reserved.