안녕하세요, ilco님 ^^
기존 ROT를 이용한 코드를 통해서 파이썬으로 구현해보았습니다 ~!
pythoncom 및 win32com 을 이용시 현재 실행중인 한글에 대한 제어가 가능합니다 .
제가 테스트 할때는 잘 동작을 했는데 확인 후 추가 문의 사항이 있으실 경우 댓글 부탁드립니다.
감사합니다.
import win32com.client as win32
import pythoncom
from win32com.client import Dispatch
context = pythoncom.CreateBindCtx(0)
# 현재 실행중인 프로세스를 가져옵니다.
running_coms = pythoncom.GetRunningObjectTable()
monikers = running_coms.EnumRunning()
for moniker in monikers:
name = moniker.GetDisplayName(context,moniker);
# moniker의 DisplayName을 통해 한글을 가져옵니다
# 한글의 경우 HwpObject.버전으로 각 버전별 실행 이름을 설정합니다.
if name == '!HwpObject.120.1':
# 120은 한글 2022의 경우입니다.
# 현재 moniker를 통해 ROT에서 한글의 object를 가져옵니다.
obje = running_coms.GetObject(moniker)
# 가져온 object를 Dispatch를 통해 사용할수 있는 객체로 변환시킵니다.
hwp = Dispatch(obje.QueryInterface(pythoncom.IID_IDispatch))
# 그이후는 오토메이션 api를 사용할수 있습니다.
# f:\\test.hwp를 여는 예제 입니다.
hwp.Open("f:\\test.hwp", arg="forceopen:True;suspendpassword:True;versionwarning:False")