inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

한/글 파일을 불러올 때마다 뜨는 팝업, 안 뜨게 할 수 없을까요?

다른 모든창 한글창을 종료하고 시작을하고 싶습니다.

해결된 질문

195

YongJun(Passion)

작성한 질문수 14

1

안녕하세요 일코님
일코님 덕분에 정말 많이 진척이 있었습니다.

이번에 제목과 같이 매크로를 시작하고

pyhwpx에서 new=True 값을 주더라도 많은 양을 작업하다보니 가끔은 new의 작동이 되지 않고 켜져있는 한글탭에 포커싱이 되는 경우가 생겨 오류가 발생하는 경우가 종종 있었습니다.

물론 매크로 작동중에는 한글을 클릭하거나 커서를 이용하는 일을 하지 않았는데도 발생하는 일이여서
혹여 매크로를 시작할 때 다른 한글 창을 모두 종료 시키고
시작을 하고 싶은데 생각만큼 잘 진행이 되지 않아 질문을 남기게 되었습니다.

 

python 한컴오피스

답변 1

1

일코

용준님 안녕하세요?

 

new=True가 씹히는 문제가 있었네요ㅜ

아마 내부적으로 win32gui가 한/글 창을 찾는 과정에서

스레드가 꼬이는 지점이 있나봅니다.

조만간 원인을 찾아서 수정을 해 두겠습니다.

 

참고로 hwp = Hwp()는 사전작업이 많아 상당히 무거운 코드이므로

반복에는 가급적 사용하지 말아주세요.

 

hwp = Hwp(new=True)는 새 창을 여는 옵션이라기보다는,

기존에 열어놓은 문서를 건드리지 않고 파이썬용 한/글 창을 하나 만들기 위함이었습니다.

한/글을 파이썬과 최초로 연결하시고 난 후에는 hwp = Hwp(new=True) 대신,

hwp.FileNew()나 hwp.FileNewTab() 등의 메서드를 활용하시는 걸 추천드립니다.

FileNew()나 FileNewTab()을 쓰시면 상기하신 오류는 발생하지 않을 것으로 생각합니다.

 

마지막으로 모든 한/글 창을 닫는 메서드는 pyhwpx에서 제공하고 있지는 않지만,

간단히 아래와 같은 함수를 짜서 활용하시면 될 듯 합니다.

import win32com.client as win32
import pythoncom


def close_all_hwp(save=False):
    context = pythoncom.CreateBindCtx(0)
    running_coms = pythoncom.GetRunningObjectTable()
    monikers = running_coms.EnumRunning()
    
    for moniker in monikers:
        name = moniker.GetDisplayName(context, moniker)
        if name.startswith('!HwpObject.'):
            obj = running_coms.GetObject(moniker)
            hwp = win32.gencache.EnsureDispatch(obj.QueryInterface(pythoncom.IID_IDispatch))
            if save and hwp.Path:  # 빈 문서가 아니면서 변경사항이 있는 경우 저장
                hwp.XHwpDocuments.Active_XHwpDocument.Clear(option=2)
            else:  # 그 외 버림
                hwp.XHwpDocuments.Active_XHwpDocument.Clear(option=1)
            hwp.Quit()
녹화_2024_09_08_14_17_53_786.gif

 

도움이 되었길 바랍니다.

행복한 하루 되세요^^

섹션7과 같은 수학 수식을 백지에서 시작할 때 어떻게 만들 수 있을까요?

0

76

1

hwp 병렬 작업시 클립보드 충돌문제

0

58

1

본문을 각주로 내리는 법

1

93

1

한글 자동화 삽도 삽입!!

1

384

2

한글 표 내부 위치 찾는 코드좀 알려주세요 ㅠㅠ

1

233

2

빈 문서를 새로 열때는 팝업이 안나오는데 기존 문서를 열면 팝업이 나옵니다

1

118

2

사무실 컴퓨터ㅠ

0

96

2

글자입력 여러번 실행기

0

67

1

현재 커서 문단에 아무런 내용이 없는지 확인하기

1

102

1

특정 스타일을 찾아 이동하는 방법

1

162

2

한/글 파일 open 시 '상위 버전에서...' 메세지 안 뜨게 하는 방법?

1

1108

1

win32com 으로 hwp 문자열 검색하기 문의

1

222

2

[응용] 엑셀문서 값을 필드에 입력하기 질

1

123

1

표 병합하기 관련

0

140

0

메타태그 삽입 자동화

0

191

1

스크립트 매크로 초기화 하고 싶습니다.

1

270

2

한글 창이 여러 개 존재할 때 pyhwpx 모듈로 접근하는 방법을 알고 싶습니다.

1

271

1

표안의 특정 필드에 있는 이미지를 복사하여 한글 외부에 저장하기

1

273

2

스타일 싹 다 지우고 바탕글로 통일하는 방법 문의드립니다.

1

283

0

하위의 여러 폴더 중 특정폴더의 사진만 추출하기

1

345

2

한글 수식을 자동으로 넣는 코드를 만들었는데, 수식 사이의 간격이 계속 벌어집니다.

1

658

1

보유 특허 검색 페이지에서 검색이 되지 않습니다.

1

139

1

hwp 페이지별 분할 저장하는 코드 관련 문의

0

447

0

한글 문서에 사용된 폰트명 추출

1

646

1