파라미터셋 HInsertFile의 KeepSection 속성이
한글 2024 버전에서는 적용되지 않습니다.
속성 값 0, 1에 상관없이 0으로 적용되는 것 같습니다.
반면 한글 2022 버전에서는 제대로 값에 따라 작동 됩니다.
파라미터셋 HPrint의 RangeIncludeLinkedDoc 속성이
한글 2022 버전에는 누락된 것 같습니다.
한글 2024 버전에는 속성이 포함되어있고, 제대로 작동 됩니다.
HPrint와 관련하여 덧붙이자면, 동일한 코드임에도 불구하고
한글 2024가 설치된 시스템에서 컴파일해서 실행하면 제대로 작동하는 데,
실행 파일을 한글 2022가 설치된 시스템으로 가져가서 실행하면
실행 중 작동이 멈추고 종료됩니다.
반대로 한글 2022가 설치된 시스템에서 컴파일해서 실행하면 작동하는 데,
실행 파일을 한글 2024가 설치된 시스템으로 가져가서 실행하면
실행 중 작동이 멈추고 종료됩니다.
컴파일 환경은 vb.net 이며,
내장 매크로에서도 실행하여 확인 확인하였습니다.
수고하세요.
실행파일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에서 실행한 결과)
그런데…
아래와 같이 KeyIndicator 메서드를 사용할 수 가 없는 것 같습니다.
이전 interop 방식에서는 동일한 코드로 각종 정보를 알 수 있었는데
새로운 방식에서는 값이 전부 0으로 나옵니다.
vb .net 코드는 아래와 같습니다.
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim myHwp As Object
myHwp = Activator.CreateInstance(Type.GetTypeFromProgID("HWPFrame.HwpObject.2"))
myHwp.RegisterModule("FilePathCheckDLL", "SecurityHwpAutomation")
myHwp.XHwpWindows.Item(0).Visible = True
myHwp.Open("C:\test.hwpx", Nothing, Nothing)
Dim a, b, c, d, ee, f As Integer
Dim g As Boolean, h As String
myHwp.KeyIndicator(a, b, c, d, ee, f, g, h)
MsgBox(a)
End Sub
KeyIndicator는 7번째 파라미터가 short으로 되어 있습니다. 아래 코드처럼 변경하면 제 pc에서는 동작합니다. 다시 확인 부탁 드립니다.
감사합니다.
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim myHwp As Object
myHwp = Activator.CreateInstance(Type.GetTypeFromProgID("HWPFrame.HwpObject.2"))
myHwp.RegisterModule("FilePathCheckDLL", "SecurityHwpAutomation")
myHwp.XHwpWindows.Item(0).Visible = True
myHwp.Open("C:\test.hwpx", Nothing, Nothing)
Dim seccnt As Integer
Dim secno As Integer
Dim prnpageno As Integer
Dim colno As Integer
Dim Line As Integer
Dim pos As Integer
Dim over As Short
Dim CtrlName As String = ""
Dim result As Boolean
result = myHwp.KeyIndicator(seccnt, secno, prnpageno, colno, Line, pos, over, CtrlName)
End Sub
Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
myHwp = Activator.CreateInstance(Type.GetTypeFromProgID("HWPFrame.HwpObject.2"))
myHwp.RegisterModule("FilePathCheckDLL", "SecurityHwpAutomation")
myHwp.XHwpWindows.Item(0).Visible = True
myHwp.Open("C:\test.hwpx", Nothing, Nothing)
myHwp.Run("MoveTopLevelBegin")
myHwp.Run("MoveLineEnd")
Dim seccnt As Integer
Dim secno As Integer
Dim prnpageno As Integer
Dim colno As Integer
Dim Line As Integer
Dim pos As Integer
Dim over As Short
Dim CtrlName As String = ""
Dim result As Boolean
result = myHwp.KeyIndicator(seccnt, secno, prnpageno, colno, Line, pos, over, CtrlName)
Me.Activate()
MsgBox(pos)
Dim info As Object = myHwp.XHwpDocuments.Active_XHwpDocument.XHwpDocumentInfo
MsgBox(info.lines)
Dim docinfo As Object = myHwp.XHwpDocuments.Active_XHwpDocument.XHwpDocumentInfo
MsgBox(docinfo.lines)
'System.Runtime.InteropServices.Marshal.ReleaseComObject(myHwp)
End Sub