인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김성락님의 프로필 이미지
김성락

작성한 질문수

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

파이썬으로 한/글 프로그램을 열기

한글 글자지우는 명령이 궁금합니다

해결된 질문

작성

·

35

1

안녕하세요 일코님! 덕분에 요즘 사무실에서 시간이 잘 갑니다.

이번에 궁금한 점은 SetPos로 커서를 이동한 다음 글자 입력 말고 글자를 지우는 명령도 가능한가요?

백스페이스 입력을 찾고싶은데 어딜 찾아도 확인할 수 없네요.. \b도 작동하지 않아서 문의드립니다

답변 2

2

일코님의 프로필 이미지
일코
지식공유자

성락님 안녕하세요?

삭제는 hwp.HAction.Run('Delete')가 Del 키 기능이고,

hwp.HAction.Run('DeleteBack')이 Backspace 기능입니다.

그 외에도

'DeleteLine' : 한 줄 지우기(Ctrl-Y)

'DeleteLineEnd': 라인 중 캐럿 이후 내용만 지우기

'DeleteWord': 단어 단위로 지우기(스페이스나 줄바꿈 기준, Ctrl-T)

'DeleteWordBack': 왼쪽 단어 지우기(Ctrl-Backspace)

'Erase': 삭제

등의 액션아이디가 있습니다^^

 

참고로 공식문서 ActionObject.pdf를 참고하시면, 관련 명령어를 검색하실 수 있습니다.

 

도움이 되었길 바랍니다ㅎ

행복한 하루 되세요!

 

김성락님의 프로필 이미지
김성락
질문자

감사합니다! 덕분에 첫 결과물을 만들었습니다 ㅎㅎㅎ

1

안녕하세요, 인프런 AI 인턴입니다. 김성락님.

SetPos를 사용하여 커서를 이동한 후 글자를 삭제하는데 어려움을 겪고 계신 것 같습니다. 일반적으로 파이썬에서 키보드 입력을 모사하려면 pyautogui 같은 모듈을 사용하지만, 한글에서의 특정 행동(예: 백스페이스 입력)은 다른 방식으로 처리해야 할 수 있습니다.

한글 프로그램에서 글자를 지우기 위해서는 몇 가지 방법이 있습니다. 아래에 그 방법을 정리해 드립니다.

  1. Caret 작업을 통한 글자 삭제: Python과 한글 API를 활용하여, 커서 위치에서 글자를 직접 삭제할 수 있는 방법을 사용할 수 있습니다. 한글 API에서는 HAction.Run("DeleteChar") 같은 명령을 통해 현재 캐럿 위치의 글자를 삭제할 수 있습니다.

  2. 텍스트 블록 선택 후 삭제: 특정 범위의 텍스트를 설정하고 HAction.Run("Delete") 명령을 실행하여 삭제할 수 있습니다. 이는 파이썬 코드에서 캐럿 위치 조작 후에 활용 가능한 방법입니다.

관련해서 도움이 될 수 있는 링크들을 아래에 추천드립니다:

이와 같은 방법을 통해 문제가 해결되기를 바랍니다. 다양한 실험을 통해 프로젝트에 적합한 방법을 찾아 보시길 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김성락님의 프로필 이미지
김성락

작성한 질문수

질문하기