멀티프로그래밍 위키로 바로가기 → http://www.devnote.net/wiki
비스타는 TSF (Text Service Framework)을 이용한 입력을 기본으로하여 기존 IME는 더 이상 사용하지 않는다. 그런데 흥미롭게도 기존 IME파일은 그대로 남겨두었다.

아래와 같이 %WINDIR%\system32 폴더에 *.IME 파일들이 존재한다. 다만, 이들은 레지스트리에서 제거되어 기본적으로 사용되지 않을 뿐이다. 게다가 이들은 XP에 들어 있는 IME보다 모두 버전업된 것 들이다. 기존 IME 지원 코드가 여전히 남아 있는 가장 큰 이유는 서드파티 IME들 때문일 것이다. 일본이나 중국의 경우 서드파티 IME들이 상당히 많이 존재하며. 이들이 TSF를 지원하기 위해 코드변경을 하는 것은 상당한 작업이기 때문에 기존 IME지원 코드를 그대로 남겨둔 것으로 보인다.

그렇다 해도 MS IME 파일들을 그대로 남겨두고 레지스트리에 추가하지 않아 사용하지 못하게 한 것은 어쨋든 좀 이상하다. 어쩌면 비스타의 기본 입력시스템인 TSF가 불안할 경우, 기존의 IME를 다시 사용할 수 있는 방법을 남겨두었는지도 모른다.

dir %WINDIR%\system32\*.ime

11/02/2006  02:39 AM           124,928 chajei.ime
11/02/2006  02:39 AM           124,928 cintlgnt.ime
11/02/2006  02:39 AM           881,152 IMJP10.IME
11/02/2006  02:39 AM           412,160 imkr80.ime
11/02/2006  02:40 AM             7,168 msctfime.ime
11/02/2006  02:39 AM           124,928 phon.ime
11/02/2006  02:39 AM            88,576 pintlgnt.ime
11/02/2006  02:39 AM           124,928 qintlgnt.ime
11/02/2006  02:39 AM           124,928 quick.ime
11/02/2006  02:39 AM           125,440 tintlgnt.ime

TSF는 코드네임 Cicero로 1990년대 말부터 시작된 프로젝트이다. COM인터페이스를 기본으로 설계된 TSF는 기존 IME와의 호환성을 위해 CUAS (Cicero Unaware Application Support)를 구현하였다. 하지만, CUAS가 100% 완벽한 호환성을 지원하지 못하기 때문에 여러 어플리케이션에서 문제가 발생할 수 있다. 기본적으로 TSF만을 지원하는 비스타이지만, 실제로는 모든 기존 IME지원 파일들이 존재하기 때문에, 기존 IME를 쉽게 재설치 가능하다. 특히, 이는 TSF와 문제를 일으키는 어플리케이션을 사용해야만 하는 경우 유용한 팁이 될 수 있다.

그럼 이들을 비스타에서 사용하려면 어떻게 하면 될까? 아래 reg파일과 같이 HKLM에 IME를 등록해주면, 기존 IME의 추가가 가능해진다. (여기서는 한글 IME의 예를 들은 것이고, 다른 언어 IME의 경우도 WIn XP의 레지스트리를 참고하여 같은 방법으로 비스타에서 문제없이 사용할 수 있다)

http://www.devnote.net/45 에 모든 아시아권 legacy IME를 포함하는 레지스트리 파일을 올려 놓았음

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0010412]
"Layout File"="KBDKOR.DLL"
"Layout Text"="Korean Input System (IME 2002)"
"IME file"="imkr80.ime"
"Layout Display Name"="@%SystemRoot%\\system32\\input.dll,-5064"


추가된 IME는 입력도구모음 윈도우에서 선택하여 사용 가능한데 아직 기본으로 설정되어 있지는 않다. 등록정보 UI에서는 기존 IME를 기본으로 설정할 수 있다.  기존 IME를 기본으로 하면 아래 HKCU의 Preload를 변경하면된다. 여기서 E0010412는 한글 입력기의 HKL 핸들값으로 위에 HKLM서 추가된 값이다. 00000412는 TSF 입력기이다. 따라서, IME가 기본으로 나타나게되며 TSF 한글 입력기를 사용하기 원하면, 언어입력도구 상자의 아이콘을 클릭하여 변경할 수 있다.


HKL은 Keyboard Layout Handle이다. HKL 값에 대해 조금 더 자세히 알아보면, IME일 경우 최상위 세비트가 항상 1 이되어 "0xE00N0LLL"와 같은 형태가 되고 IME가 아닌 키보드 드라이버일 경우는 "0x000N0LLL" 형태가 된다. 여기서 N은 일련번호 (1부터 시작) 이며 LLL은 LCID (Locale ID)이다. 한글의 경우는 LLL은 412 (16진수) 가 된다.

윈도우즈에 설치된 모든 키보드 드라이버와 IME는 다음 레지스트리 아래에서 찾을 수 있다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts

또 이들 중에 각각의 사용자들에게 설치된 IME는 아래 HKCU 아래 있다. 숫자 일련번호에 따라 "1" 이 기본 IME혹은 키보드 드라이버이다

HKEY_CURRENT_USER\Keyboard Layout\Preload


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Keyboard Layout\Preload]
"1"="e0010412"
"2"="00000412"

마이크로소프는 비스타에서 음성인식 지원을 가장 큰 기능 향상 중의 하나로 선전하였다. (음성인식은 XP에도 있었으나 비스타에서 UI가 많이 향상되었다). 하지만, 안타깝게도 한국어 음성인식이 지원되지 않는다. (일본어, 중국어 음성인식은 지원된다). 따라서, 비스타의 TSF를 통해 당장 얻어지는 잇점 이라면 단어 단위의 한글/한자 변환과 사용자 정의 한자 사전일 것이다. 하지만, 이러한 기능을 사용하지 않는다면 기존 (legacy) IME를 사용하는 데 아무런 문제가 없다. 기존 IME는 TSF IME에 비해 메모리도 100 KB이상 덜 사용하며, 전에 언급한 바와 같이 복잡한 함수 호출이 없어 속도도 빠르다. 호환성에 있어서도 물론 기존 IME가 우수하다.

그렇다고 앞으로 계속 기존 IME 쓸 수는 없을 것이다. 비록 비스타에서 IME 파일을 남겨 두었으나, 다음 윈도우즈 버전에서는 IME를 영원히 삭제하게 될 것으로 예상되기 때문이다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Trackback Address :: http://devnote.net/trackback/39


◀ PREV : [1] : ... [58] : [59] : [60] : [61] : [62] : [63] : [64] : [65] : [66] : ... [93] : NEXT ▶