안녕하세요? c#으로 한컴 오토메이션중 이용중입니다.
기존에는 잘 되다가 이번에 한컴 2020 업데이트 후에 에러가 나는데요
(한글 2024에서도 에러가 납니다. - Server RPC 에러)
문단테두리 변경하는 아래 코드에서 에러가 나는데 뭐가 문제일까요?
업데이트 전에는 잘 되던 코드입니다.
hwp.HAction.Run(“SelectAll”);
hwp.HAction.GetDefault(“ParagraphShape”, hwp.HParameterSet.HParaShape.HSet);
hwp.HParameterSet.HParaShape.BorderFill.BorderColorBottom = hwp.RGBColor(r, g, b);
hwp.HParameterSet.HParaShape.BorderFill.BorderColorTop = hwp.RGBColor(r, g, b);
hwp.HParameterSet.HParaShape.BorderFill.BorderColorRight = hwp.RGBColor(r, g, b);
hwp.HParameterSet.HParaShape.BorderFill.BorderCorlorLeft = hwp.RGBColor(r, g, b);
hwp.HAction.Execute(“ParagraphShape”, hwp.HParameterSet.HParaShape.HSet);
hwp.HAction.Run(“Cancel”);
위 코드만의 문제는 아닌듯 합니다.
혹시 업데이트 후에 업데이트 내용 제거할 수도 있나요?
아니면 지우고 다시 설치해야 하나요?
1개의 좋아요
한컴 환경설정 2024 버전을 실행하고 환경설정 초기화를 하면
아래한글 자동화도 해당 버전(2024)으로 설정되는 줄 알았는데
(기존 2020 버전은 잘 됐던거 같아서요)
‘한컴 환경설정 초기화’ 이것만으로는 자동화가 연결이 안되는거 같네요
기존에 설치되어 있는 2020버전이 백그라운드로 실행되고 있더라구요 ㅠㅠ
2020버전의 디렉토리에서
hwp -regserver 을 관리자 권한으로 실행하고 나니까 2020 버전은 정상적으로 잘 되고 있습니다.
한글 2014, 한글 2020에서는 한컴 환경설정만으로도 아래한글 자동화가 잘 변경 됐던거 같아서
잘 되는 줄 알았었네요
hwp -regserver
2020은 위 방법으로 잘 되는거 같은데… 그래서 2024도 잘 되는 줄 알았는데
한글 2024 버전은 안되네요??
관리자 권한으로 위 명령으로 2020 버전으로 설정해서 잘 되길래
같은 방법으로 2024 버전을 실행했는데
그림과 같은 화면의 에러가 나네요…ㅠ
1개의 좋아요
안녕하세요.
저희도 확인 과정에서 해당 증상이 발견되어 해결 방법을 찾아보느라 답변이 늦어지고 있네요. 
해결 방법이 있는지 찾아보고 답변 남기겠습니다.
답변을 기다리실 것 같아 진행 상황만 답변으로 남겨둡니다.
감사합니다.
1개의 좋아요
안녕하세요
답변이 늦어서 죄송합니다ㅠㅠ
2024 최신 버전에서 Native 언어(C++)로 개발된 프로그램은 문제 없이 동작 하지만 interop 파일을 사용하는 방식으로 개발된 닷넷 프로그램에서 문제를 확인하였습니다. 현재 수정 방법은 내부에서 검토중입니다.
해결 방법은 interop 파일을 사용하지 않는 방법으로 개발 하셔야 할 것 같습니다. ㅠㅠ
interop 파일을 사용하지 않고 dynamic 키워드를 사용하면 좋을 것 같습니다.
아래 코드는 말씀하신 코드를 dynamic으로 변경한 예제 코드인데 참고 부탁드립니다.
Type hwpType = Type.GetTypeFromProgID("HWPFrame.HwpObject.2");
dynamic hwp = Activator.CreateInstance(hwpType);
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckModule");
byte r = 255;
byte g = 0;
byte b = 0;
if (hwp.Open("c:\\테스트 파일.hwpx", "", "") == true) {
hwp.XHwpWindows.Item(0).Visible = true;
hwp.HAction.Run("SelectAll");
hwp.HAction.GetDefault("ParagraphShape", hwp.HParameterSet.HParaShape.HSet);
hwp.HParameterSet.HParaShape.BorderFill.BorderColorBottom = hwp.RGBColor(r, g, b);
hwp.HParameterSet.HParaShape.BorderFill.BorderColorTop = hwp.RGBColor(r, g, b);
hwp.HParameterSet.HParaShape.BorderFill.BorderColorRight = hwp.RGBColor(r, g, b);
hwp.HParameterSet.HParaShape.BorderFill.BorderCorlorLeft = hwp.RGBColor(r, g, b);
hwp.HAction.Execute("ParagraphShape", hwp.HParameterSet.HParaShape.HSet);
hwp.HAction.Run("Cancel");
MessageBox.Show("한/글 Automation 로딩테스트 성공!!!");
}
hwp.Quit();
Marshal.ReleaseComObject(hwp);
interop 파일의 자세한 설명은 COM Interop in .NET - .NET | Microsoft Learn 에서 확인하시면 좋을 것 같습니다.
3개의 좋아요
네. 알겠습니다.
알려주신 방법대로 하니까 현재 에러 없이 잘 작동합니다.
감사합니다
1개의 좋아요