오류 확인 부탁드립니다.

안녕하세요.
오토메이션 코딩 중 아래와 같은 문제가 있어서 확인 부탁 드립니다.

  1. 파라미터셋 HInsertFile의 KeepSection 속성이
    한글 2024 버전에서는 적용되지 않습니다.
    속성 값 0, 1에 상관없이 0으로 적용되는 것 같습니다.
    반면 한글 2022 버전에서는 제대로 값에 따라 작동 됩니다.

  2. 파라미터셋 HPrint의 RangeIncludeLinkedDoc 속성이
    한글 2022 버전에는 누락된 것 같습니다.
    한글 2024 버전에는 속성이 포함되어있고, 제대로 작동 됩니다.

  3. HPrint와 관련하여 덧붙이자면, 동일한 코드임에도 불구하고
    한글 2024가 설치된 시스템에서 컴파일해서 실행하면 제대로 작동하는 데,
    실행 파일을 한글 2022가 설치된 시스템으로 가져가서 실행하면
    실행 중 작동이 멈추고 종료됩니다.
    반대로 한글 2022가 설치된 시스템에서 컴파일해서 실행하면 작동하는 데,
    실행 파일을 한글 2024가 설치된 시스템으로 가져가서 실행하면
    실행 중 작동이 멈추고 종료됩니다.

컴파일 환경은 vb.net 이며,
내장 매크로에서도 실행하여 확인 확인하였습니다.
수고하세요.

1개의 좋아요

안녕하세요

  1. 말씀하신 버그 사항 확인했고 담당 팀에 전달해서 수정하겠습니다.

  2. 2024에서도 RangeIncludeLinkedDoc은 안 쓰이고 Range로 쓰이는데 어떻게 확인하셨는지 알 수 있을까요? Range(0 = 문서전체 (연결된 문서 포함), 6 = 현재 문서 (연결된 문서 미포함))로 쓰시는 것을 추천드립니다.

  3. 혹시 어떻게 구현했는지 알 수 있을까요? 실행 환경에서 오토메이션 등록은 잘 되어 있는지요?
    단순히 GetDefault하고 바로 Execute 호출하는 코드만 만들었을 때는 다른 pc의 실행 환경(2022,2024)에 상관없이 동작했습니다.

감사합니다.

1개의 좋아요

답변 감사합니다.

2.관련하여
한글 2024 매크로 기록 (연결된 문서 포함 체크 해제한 경우)

(한글 2024 + vb .net)에서 코딩할 때 RangeIncludeLinkedDoc 속성이 포함되어 있는 사진

  1. 각각 (한글 2022 / 한글 2024)에서 컴파일 된 실행파일은 실행되나
    크로스로 실행하면 작동이 되지 않습니다. 중간에 실행파일이 종료 됩니다.
1개의 좋아요

2번 사항은
말씀해주신 대로 사용해 보겠습니다.

1개의 좋아요

안녕하세요.
위의 질문 중 3번 다시 질문 드립니다.

시스템1:
windows11 / visual studio 2022 (vb. net) / 한글2024 => 컴파일 실행파일1

시스템2:
windows11 / visual studio 2022 (vb. net) / 한글2022 => 컴파일 실행파일2

실행파일1은 시스템1에서 잘 작동합니다.
그런데 시스템 2로 가져가서 실행(문서 오픈)하면 그냥 종료됨

실행파일2 역시 시스템2에서 문제 없습니다.
그런데 시스템1로 가져가서 실행(문서 오픈) 하면 프로그램 종료됨

시스템3:
windows10 / 한글2024 => 실행파일1 문제없음

시스템4:
windows10 / 한글2022 => 실행파일1 실행(문서 오픈) 하면 프로그램 종료됨

코드는 동일하며 단순 문서 오픈만 하는 겁니다.
예전엔 그렇지 않았던 것 같은데…
제가 잘못하고 있는 게 뭔지 알려주시면 감사하겠습니다.

코드 내용

Imports HwpObjectLib

Public Class frmMain
	Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
		Dim myHwp As New HwpObject
		myHwp.RegisterModule("FilePathCheckDLL", "SecurityHwpAutomation")
		myHwp.XHwpWindows.Item(0).Visible = True
		myHwp.Open ("C:\test.hwpx", Nothing, Nothing)
	End Sub
End Class

=================================================
참고로…
질문 내용의 프로젝트 방식은 .net core방식으로 에러 메시지 없이 종료되지만
.net framework 방식으로 바꿔서 컴파일한 실행파일을 실행하면
아래와 같은 메시지가 뜹니다.
(시스템1에서 컴파일한 실행파일을 시스템2에서 실행한 결과)

에러 메시지 자세한 내용은 아래와 같습니다.

이 대화 상자 대신 JIT(Just-in-time) 디버깅을 호출하는
방법에 대한 자세한 내용은 이 메시지의 뒷부분을 참조하십시오.

************** 예외 텍스트 **************
System.Runtime.InteropServices.COMException (0x800706F4): 널 참조 포인터를 스텁에 전달했습니다. (예외가 발생한 HRESULT: 0x800706F4)
   위치: HwpObjectLib.IHwpObject.RegisterModule(String ModuleType, Object ModuleData)
   위치: err_Test_fw.Form1.Button1_Click(Object sender, EventArgs e) 파일 D:\Visual Studio 2022\err Test fw\err Test fw\Form1.vb:줄 6
   위치: System.Windows.Forms.Control.OnClick(EventArgs e)
   위치: System.Windows.Forms.Button.OnClick(EventArgs e)
   위치: System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   위치: System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   위치: System.Windows.Forms.Control.WndProc(Message& m)
   위치: System.Windows.Forms.ButtonBase.WndProc(Message& m)
   위치: System.Windows.Forms.Button.WndProc(Message& m)
   위치: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   위치: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   위치: System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 로드된 어셈블리 **************
mscorlib
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9290.0 built by: NET481REL1LAST_C
    코드베이스: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
err Test fw
    어셈블리 버전: 1.0.0.0
    Win32 버전: 1.0.0.0
    코드베이스: file:///C:/Users/kosohn/Desktop/Release/err%20Test%20fw.exe
----------------------------------------
Microsoft.VisualBasic
    어셈블리 버전: 10.0.0.0
    Win32 버전: 14.8.9032.0 built by: NET481REL1
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System.Windows.Forms
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9256.0 built by: NET481REL1LAST_B
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9282.0 built by: NET481REL1LAST_C
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9032.0 built by: NET481REL1
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9032.0 built by: NET481REL1
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9277.0 built by: NET481REL1LAST_B
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9032.0 built by: NET481REL1
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9032.0 built by: NET481REL1
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Runtime.Remoting
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9214.0 built by: NET481REL1LAST_B
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
mscorlib.resources
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9032.0 built by: NET481REL1
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ko_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
System.Windows.Forms.resources
    어셈블리 버전: 4.0.0.0
    Win32 버전: 4.8.9032.0 built by: NET481REL1
    코드베이스: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ko_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** JIT 디버깅 **************
JIT(Just In Time) 디버깅을 사용하려면 이 응용 프로그램 또는 컴퓨터의
config 파일(machine.config)의 jitDebugging 값을
system.windows.forms 섹션에 설정해야 합니다.
또한 응용 프로그램은 디버깅할 수 있도록 컴파일되어야
합니다.

예:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

JIT 디버깅을 사용하면 처리되지 않은 모든 예외는
이 대화 상자에서 처리되지 않고 컴퓨터에 등록된 JIT
디버거에 보내집니다.
1개의 좋아요