지난 글에서는 별도의 설치나 재부팅없이 한글을 쓸 수 있는 방법에 대해 소개를 했었다. (지난 글 보기)
그 방법들은 임시방편일 뿐이기 때문에, 언제 다시 그런 상황이 발생할지 모른다.
그래서 이번에는 보다 근본적인 방법을 소개하고자 한다.

이런 오류가 발생하는 이유는 'Ctfmon.exe'라는 파일 때문이다.
이 녀석은 활성화된 창을 모니터링하며 음성 인식, 필기체 인식, 키보드, 번역 및 기타 다른 입력 도구 기술에 대한 텍스트 입력 서비스를 지원하는데, 윈도우 정식 프로세스가 아니라 MS 오피스 XP부터 도입된 고급 텍스트 서비스이다.

설명을 들어보면 아주 훌륭한 서비스인 것 같다.
문제는, Ctfmon.exe는 다른 입력 도구 기술을 제어하는 파일이기 때문에...
Windows를 시작할 때마다 시작되며, Office XP 실행 여부와 관계없이 백그라운드에서 계속 실행된다는 점이다.
이로 인해 프로그램간 충돌이 생기거나, 시스템이 느려지는 상황이 발생하게 된다.

따라서, Ctfmon.exe를 삭제하는 것이 한글 입력 오류에 대한 근본적인 해결책이라 할 수 있다.
그럼 Ctfmon.exe 삭제 방법을 알아보자.

1. 레지스트리를 이용하는 방법

먼저 Ctfmon.exe 파일의 실행을 유도하는 dll 파일을 삭제한다.
'윈도우'키 + 'R' 버튼으로 실행 창을 띄운 후(또는 시작 - 실행) 다음과 같이 입력한다.

▲ Regsvr32.exe /u msimtf.dll을 입력한 후 확인

▲ Regsvr32.exe /u msctf.dll을 입력한 후 확인

다음으로는 작업관리자(작업표시줄에서 우클릭 - 작업관리자 선택)를 실행하여 Ctfmon.exe를 종료시킨다.

▲ Ctfmon.exe 종료하기

마지막으로, 레지스트리에서 Ctfmon.exe를 삭제하면 된다.
'윈도우'키 + 'R' 버튼으로 실행 창을 띄운 후(또는 시작 - 실행) 다음과 같이 입력한다.

▲ Regsvr32.exe /u msctf.dll을 입력한 후 확인

편집기가 나타나면 다음 경로를 찾아들어가 ctfmon.exe를 삭제한다.
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run

▲ 오른쪽 영역에 Ctfmon.exe를 볼 수 있다.

재부팅 후 프로세스 관리자에 보면 Ctfmon.exe가 사라져 있음을 알 수 있다.

2. 제어판을 이용하는 방법

레지스트리를 건드리는 것이 어려운 경우, 제어판을 이용하여 동일한 작업을 할 수 있다.
제어판 >국가 및 언어 옵션 > '언어'탭 > 자세히 > '고급'탭 선택 후
시스템 구성 항목에서 '고급 텍스트 서비스 사용 안함'에 체크를 하면 된다.

▲ 위와 같이 설정 후 재부팅을 하면 된다.

3. 레지스트리에서도 못 찾고, 제어판에서 국가 및 언어 옵션을 선택할 수 없는 경우.


파일을 다운로드 받은 후 압축을 풀면 'imm32.dll'이라는 파일이 있다.
이 파일로 현재 윈도우에 있는 파일을 대체하면 된다.

윈도우 탐색기를 열고 'C:\ > Windows > Sysem32' 경로를 찾아간다.

▲ C:\ > Windows > Sysem32 폴더에 보면 'imm32.dll'이라는 파일을 볼 수 있다.

클릭&드래그나, 잘라내기&붙여넣기를 통해 imm32.dll 파일을 다른 곳으로 옮긴 후 파일명을 바꿔준다.
그런 후 다운받은 imm32.dll 파일을 저 폴더에 넣고 재부팅을 하면 된다.
※ 만일의 사태를 대비하여 원본 imm32.dll 파일은 보관해두길 권장함.