Windows 輸入法程式設計 (上) (轉)
第一章 9x下漢字輸入法的基本原理
Windows系統下漢字輸入法實際上是將輸入的標準ascii字串按照一定的編碼規則轉換為漢字或漢字串,進入到目的地。由於應用各不相同,不可能自己去設計轉換程式,因此,漢字輸入自然而然落到WINDOWS中。
一、輸入法與系統的關係
鍵盤事件 應用程式
| |
Windows的USER.EXE
|
輸入法管理器
|
輸入法
系統的鍵盤事件有windows的user.exe接收後,user.exe在將鍵盤事件傳導輸入法管理器(Input Method Manager,簡稱IMM)中,管理器 再將鍵盤事件傳到輸入法中,輸入法根據使用者編碼字典,翻譯鍵盤事件為對應的漢字(或漢字串),然後再反傳到user.exe中,user.exe再將翻譯後的鍵盤事件傳給當前正執行的應用程式,從而完成漢字的輸入。
二、漢字輸入法的組成
Windows9x系統中漢字輸入法的名稱是"Input Method Editor" ,簡稱IME,輸入法的程式名稱為:*.ime,資料名稱為*.MB,即通常說的輸入法編碼表(字典).
實際上IME檔案是一個動態連線庫程式(DLL),它與dll檔案沒有區別,只是名稱不同而已。
一般漢字輸入法都由三個視窗組成:
狀態視窗(Status Windows)-顯示當前的輸入法狀態(中文還是英文等站環資訊);
編碼輸入視窗(Composition Windows)-顯示當前擊鍵情況;
漢字選擇視窗(Candidates Windows)-列出當前編碼的全部漢字(串),供使用者選擇或查詢。
上述三個視窗由基本的使用者介面(User Interface )管理著。
現在我們用Dumpbin.exe開啟微軟提供的拼音輸入法(WINDOWSSYSTEMWINPY.IME)看看它有什麼組成(這裡一WINDOWS98為例,並假定windows系統在c:盤下):
C:Dumpbin c:windowssystemwinpy.ime
(R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
Dump of file WINPY.IME
File Type: DLL //IME 實際為dll程式
Section contains the following exports for WINPY.ime
0 characteristics
34A37323 time date stamp Fri Dec 26 17:04:35 1997
0.00 version
1 ordinal base
19 number of functions //共有19個函式
19 number of names // 對應19個名稱
ordinal hint RVA name
1 0 0000A010 CandWndProc //"選擇漢字視窗"註冊函式
2 1 0000E750 CompWndProc //"輸入編碼視窗"註冊函式
3 2 0000FB50 ImeConfigure //當前ime引數函式
4 3 0000FEC0 ImeConversionList//將字元或字串轉換成目標字元
5 4 0000FFA0 ImeDestroy //退出當前使用的IME
6 5 000030D0 ImeEnumRegister
7 6 0000FFB0 ImeEscape //應用軟體訪問輸入法的介面函式.
8 7 00003080 ImeGetRegisterWordStyle
9 8 0000E9A0 ImeInquire //啟動並初始化當前IME輸入法
10 9 0000A800 ImeProcessKey //IME輸入鍵盤事件管理函式
11 A 00002C20 ImeRegisterWord //向輸入法字典註冊字串
12 B 000109A0 Ime //啟動當前IME輸入法
13 C 000109E0 ImeSetActiveContext //設定當前的輸入處於活動狀態.
14 D 0000C850 ImeSetCompositionString 由應用程式設定輸入法編碼
15 E 0000AEE0 ImeToAsciiEx //將輸入的鍵盤事件轉換為漢字編碼事件
16 F 00002F40 ImeUnregisterWord //刪除被註冊的字串.
17 10 0000CA90 NotifyIME //IME事件管理函式
18 11 00005160 StatusWndProc //狀態視窗註冊函式
19 12 00002350 UIWndProc //使用者介面介面函式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992865/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- windows10系統怎麼將搜狗輸入法設為預設輸入法Windows
- windows10輸入法怎麼設定_win10輸入法設定的方法WindowsWin10
- windows10系統怎麼增加輸入法 windows10系統新增輸入法設定Windows
- shell程式設計(三)輸入輸出程式設計
- 徹底刪除windows自帶的輸入法(轉)Windows
- windows網路程式設計經典入門 (轉)Windows程式設計
- Windows7系統輸入法的設定技巧Windows
- 4-Windows程式設計 -文字輸出Windows程式設計
- 如何在 Ubuntu 上設定多語言輸入法Ubuntu
- Java程式設計複習提綱(上:入門語法)Java程式設計
- 11.程式程式設計基礎5:輸入輸出程式設計
- Win10輸入法設定方法_win 10 輸入法如何設定Win10
- Linux核心模組程式設計-將/proc作為輸入(轉)Linux程式設計
- 遊戲開發新手入門之Windows程式設計(轉)遊戲開發Windows程式設計
- 實驗一訊飛輸入法APP設計APP
- Windows 8.1的輸入法編輯器Windows
- win10預設輸入法怎麼刪除輸入法 win10預設輸入法如何刪除Win10
- win10輸入法設定預設搜狗輸入法怎麼操作 w10怎麼把輸入法預設搜狗Win10
- Windows10系統下預設輸入法的設定步驟Windows
- 初探WINDOWS下IME程式設計 (轉)Windows程式設計
- Win10怎麼設定預設的輸入法為百度輸入法 百度輸入法恢復預設設定Win10
- imemode 控制輸入法,控制輸入框的輸入法
- winxp系統下將指定輸入法怎麼設定為預設輸入法
- TCSHshell程式設計入門(轉)程式設計
- Win10系統怎麼設定qq拼音輸入法為預設輸入法Win10
- 如何修改MacOS預設輸入法?Mac
- linux設定中文輸入法Linux
- WINDOWS CE 資料庫程式設計 (轉)Windows資料庫程式設計
- win10怎樣設定輸入法_win10設定輸入法的步驟Win10
- win10如何設定預設輸入法_win10怎麼調整預設輸入法Win10
- 設定ibus為預設輸入法
- Windows 8.1簡體中文輸入法使用前基本Windows
- Ubuntu下搜狗輸入法無法輸入中文Ubuntu
- (轉)程式設計師的生存法則程式設計師
- windows XP CMD中無法輸入中文的解決辦法Windows
- 預設輸入法怎麼設定win10_win10系統修改預設輸入法的教程Win10
- win10電腦怎麼設定輸入法_win10輸入法在哪裡設定Win10
- 三星預設輸入法遠端程式碼執行