runscriptmacro 호출오류

파이썬에서 runscriptmacro로 스크립트 매크로를 호출하는것에 어려움을 겪고 있습니다.

원래 잘 작동하던 runscriptmacro를 포함한 파이썬 코드에서

새로 작성한 scriptmacro를 호출해서 실행하려고 해보니 실행이 안되고

그 이후에는 기존에 잘 되던 scriptmacro들도 호출이 안되는 문제가 발생하고 있습니다…

매크로 보안 환경이나 보안모듈 관련 문제도 아닌 것 같고

이런저런 시도를 해 봤는데 모두 안되어서 질문드립니다..

안녕하세요

오토메이션 재등록하고 다시 확인 부탁드립니다.

  1. 관리자 권한으로 명령프롬프트 실행
  2. cd C:\Program Files (x86)\Hnc\Office 2024\HOffice130\Bin ( 한글 2024으로 실행시)
  3. hwp.exe -regserver

계속 문제 발생시 재현 되는 예제 코드나 경고 메세지라던가 특정 상황에서만 되는지 등
좀 더 알려주시면 좋을 것 같습니다.

감사합니다.

오토메이션 재등록 후에도 여전히 동일한 현상입니다…
테스트 사용하는 파이썬 코드와 스크립트 매크로도 첨부해보겠습니다.
경고메시지는 뜨지 않고 파이썬 코드는 정상적으로 실행이되지만 매크로가 실행되지 않습니다.(매크로 호출 이외에 HAction.Run을 이용한 작업들은 정상적으로 처리됩니다.)

import os

import time

import win32com.client as win32

from tkinter import Tk, filedialog

def 실행_후_3초_대기():

TARGET_MACRO_NAME = "OnScriptMacro_script74" 

root = Tk()

root.withdraw()

file_path = filedialog.askopenfilename(

    title="매크로를 실행할 한글 파일을 선택하세요",

    filetypes=\[("한글 파일", "\*.hwp \*.hwpx")\]

)

root.destroy()



if not file_path:

    print("파일 선택이 취소되었습니다.")

    return



print(f"선택된 파일: {file_path}")

if _name_ == “_main_”:

실행\_후\_3초\_대기()



\# 2. 한글 실행

hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")

hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")

hwp.XHwpWindows.Item(0).Visible = True  # 과정을 눈으로 확인



try:

    \# 3. 문서 열기

    hwp.Open(file_path)

    time.sleep(1) # 파일 열리는 시간 살짝 대기



    \# 4. 매크로 실행

    print(f"매크로 실행 시도: {TARGET_MACRO_NAME}")

    hwp.RunScriptMacro(TARGET_MACRO_NAME, 0, 0)

    

    \# ------------------------------------------------

    \# \[요청하신 부분\] 매크로 실행 후 3초간 대기

    \# ------------------------------------------------

    print("⏳ 매크로 실행 후 3초 기다리는 중...")

    time.sleep(3) 

    print("3초 대기 완료.")

    \# 5. 저장

    hwp.Save()

    print("저장 완료.")



except Exception as e:

    print(f"오류 발생: {e}")



finally:

    \# 6. 종료

    hwp.Quit()

    print("한글 종료됨.")

if __name__ == "__main__":
    실행_후_3초_대기()

function OnScriptMacro_script74()
{
HAction.GetDefault(“InsertText”, HParameterSet.HInsertText.HSet);
HParameterSet.HInsertText.Text = “테스트”;
HAction.Execute(“InsertText”, HParameterSet.HInsertText.HSet);
}