首页 自制WINDOWS7输入法

自制WINDOWS7输入法

举报
开通vip

自制WINDOWS7输入法自制WINDOWS7输入法 陈代国 WINDOWS7自带的输入法并不多,常用的五笔输入法就没有,OFFICE2007中也没有,Office2003只有32位版本.在WINDOWS7x64系统下,很多输入法都或多或少存在一些兼容性问题,以下介绍一种WINDOWS7输入法的自制方案,由此方案产生的输入法与WINDOWS7内置的输入法完全一致,不存在兼容问题,也没有系统垃圾产生,完全绿色而且极具个性化. 1 自制码表 Windows7输入法码表与原来的WINDOWSXP不完全一样,其样式可参考%prog...

自制WINDOWS7输入法
自制WINDOWS7输入法 陈代国 WINDOWS7自带的输入法并不多,常用的五笔输入法就没有,OFFICE2007中也没有,Office2003只有32位版本.在WINDOWS7x64系统下,很多输入法都或多或少存在一些兼容性问题,以下介绍一种WINDOWS7输入法的自制方案,由此方案产生的输入法与WINDOWS7内置的输入法完全一致,不存在兼容问题,也没有系统垃圾产生,完全绿色而且极具个性化. 1 自制码表 Windows7输入法码表与原来的WINDOWSXP不完全一样,其样式可参考%programFiles%\Windows NT\TableTextService\下的各种码表文件,依照相应的格式,就可以自制自己的输入法码表.通常有两种方法: (1)利用现有的支持WINDOWS7的输入法,修订成具有自己个性的输入法.比如五笔字型,可以先安装如极品五笔,海峰五笔等等,安装之后,在%programFiles%\Windows NT\TableTextService\文件夹下能找到相应的码表文件,这是一个文本文件,打开它可以对其进行编辑,如在词库编码部分增加自己的一些常用词组等.当然如果这种输入法在WINDOWS7下用得很顺手,这样改造一下就可以了,将修改后的码表备份,下次安装将其覆盖相应的文件就可以继续使用了.如果要将其改造成自己的码表,可用VS.net自带的工具GUID生成器生成GUID编码,然后更改码表文件中的GUID码,以免与所安装的输入法重复,其中可修改的部分为附录中红色部分,其中GuidProfile是必须更改的.如果GUID码无法生成器产生,也可以随便更改其中一两个字符.保存的文件名要与KeystrokeFile和DictionaryFile所指定文件名一致. (2)利用WINDOWS XP或WINDOWS98输入法和码表转换工具生成新的码表文件,这一过程要麻烦一些,主要是须对词库编码进行改造.首先是在WINDOWS7或WINDOWSXP安装相应的输入法并找到相应的以.MB为扩展名的XP码表文件.然后WINDOWSXP或WINPE系统下利用输入法生成器IMEGEN对.MB的XP码表进行逆转换,可得到一个含有词库编码的文本文件,打开此文件,删除其中的表头部分,只留下词库编码,按UTF-8编码另存为一个文本文件,如D:\WINWB861.txt.再可将其内容复制到EXCEL中,编制VB宏将其转换为WINDOWS7 码表格式.如果熟悉VS.net,可利用以下VB.net代码生成新的WINDOWS7码表文本文件.最后将码表头文件内容添加到上面,按UNICODE编码另存为新的WINDOWS7码表文件. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '读入文件: D:\WINWB861.txt,其编码为UTF-8,码表格式为:工a,式aa,… Dim i, j, k, t As Integer Dim sr As StreamReader = New StreamReader("D:\WINWB861.txt", False) Dim strRecords(25300),strBM(25300),strHZ(25300) As String’码表词库量为25300 i = 0 Do While sr.EndOfStream = False '直到读完整个流 strRecords(i) = sr.ReadLine: i += 1 Loop sr.Close() '第一步去汉字 For i = 0 To 25300 If strRecords(i) = "" Then Exit For k = 0 For j = 1 To VB.Len(strRecords(i)) t = Asc(VB.Mid(strRecords(i), j, 1)) If t < 97 Or t > 122 Then k += 1 Else strBM(i) = VB.Right(strRecords(i), VB.Len(strRecords(i)) - k) Exit For End If Next Next '第二步,去掉编码中的重码 For i = 0 To 25300 If strBM(i) = "" Then Exit For k = 0 For j = 1 To VB.Len(strBM(i)) If VB.Mid(strBM(i), j, 1) = " " Then strBM(i) = VB.Left(strBM(i), j - 1) End If Next Next '第三步去编码 For i = 0 To 25300 If strRecords(i) = "" Then Exit For k = 0 For j = 1 To VB.Len(strRecords(i)) t = Asc(VB.Mid(strRecords(i), j, 1)) If t < 97 Or t > 122 Then k += 1 Else strHZ(i) = VB.Left(strRecords(i), k):Exit For End If Next Next '写 Dim sw As StreamWriter = New StreamWriter("D:\winwb86Han.txt", False) '创建文件 Dim strTemp As String = "" For i = 0 To 25300 strTemp = strTemp & strBM(i) & "=+" & strHZ(i) & "+" & Chr(13)‘完成后将+号替换成” Next sw.WriteLine(strTemp) '使用默认密码加密 sw.Flush() : sw.Close() MsgBox("执行完成!") End Sub 2 更改码表文件头 在[System]部分,更改Display Description为直接汉字描述,删除IconIndex=ICON_JPWB字段,添加Enable=1(启用此输入法), Icon指定输入法的图标,图标的制作可以用自己个性化的图片通过软件IconWorkshop生成32X32 RGBA和16x16 RGBA, 如果不指定图标WINDOWS会将显示内置输入法的第0个图标.IconIndex=0(因为只有一个图标) 在[Configuration]部分,置MakePhraseFromText=1可启用输入法的词组联想功能,添加Composition.ConversionOnlyOneItem=1可实现五笔四码上屏. 其它可更改的部分是附录中红色的GUID. 3 添加自定义的词组 按照码表中编码方案,将自定义的词组录入到一个新文本文件中,录完后复制码表文件的[Text]之后.再将此码表文件保存为与码表文件中KeystrokeFile和DictionaryFile所指定文件名一致的文本文件. 自定义词组的编码也可以用上面提到的输入法生成器自动生成编码,再导出到文本文件中,进而转换成WINDOWS7格式的码表文件. 4 输入法的生成 (1)复制文件 如果是32位系统,将生成的码表文件如TableTextServiceSimplifiedwbzx86.txt复制到%programFiles%\Windows NT\TableTextService\ TableTextServiceSimplifiedwbzx86.txt,将制作的图标文件如wbzx86.ico复制到ICON指定的文件夹下如: Icon=%programFiles%\Windows NT\TableTextService\zh-CN\wbzx86.ico.如果是x64系统,则同时将上述两个文件复制到相应的%programFiles% (x86)\Windows NT\TableTextService下 (2)注册输入法 运行CMD,进行DOS命令窗口模式,再进入%programFiles%\Windows NT\TableTextService\文件夹,运行Rundll32 TableTextService.dll RegisterProfile TableTextServiceSimplifiedwbzx86.txt即可实现输入法注册.如果为x64系统,则同时进入%programFiles% (x86)\Windows NT\TableTextService\文件夹,运行Rundll32 TableTextService.dll RegisterProfile TableTextServiceSimplifiedwbzx86.txt 5 输入法卸载 与输入法的生成一样,在DOS窗口下进入相应文件夹,运行Rundll32 TableTextService.dll UnregisterProfile TableTextServiceSimplifiedwbzx86.txt,再将相应的文件ableTextServiceSimplifiedwbzx86.txt和wbzx86.ico文件删除. 6 制作安装文件 (1) 制作WINDOWS安装用的脚本文件 打开记事本,将上述操作的脚本代码添加上去: copy TableTextServiceSimplifiedwbzx86.txt "%programFiles%\Windows NT\TableTextService\TableTextServiceSimplifiedwbzx86.txt" copy zh-CN\wbzx86.ico "%programFiles%\Windows NT\TableTextService\zh-CN\wbzx86.ico" copy TableTextServiceSimplifiedwbzx86.txt "%programFiles% (x86)\Windows NT\TableTextService\TableTextServiceSimplifiedwbzx86.txt" copy zh-CN\wbzx86.ico "%programFiles% (x86)\Windows NT\TableTextService\zh-CN\wbzx86.ico" c: cd %programFiles% (x86)\Windows NT\TableTextService\ Rundll32 TableTextService.dll RegisterProfile TableTextServiceSimplifiedwbzx86.txt cd %programFiles%\Windows NT\TableTextService\ Rundll32 TableTextService.dll RegisterProfile TableTextServiceSimplifiedwbzx86.txt 将该文本文件保存为WbzxSetupx64.对于32位系统则可以去掉上面蓝色部分, 并将文件另存为wbzxSetupx86.cmd.并注意到复制的目标路径要用双引号括起来. 类似地,制作一个卸载程序,其代码如下,同样的32位系统可去掉蓝色部分代码,将其分别保存在为wbzxUninstallx64.cmd和wbzxUninstallx86.cmd. c: cd %programFiles%\Windows NT\TableTextService\ Rundll32 TableTextService.dll UnregisterProfile TableTextServiceSimplifiedwbzx86.txt cd %programFiles% (x86)\Windows NT\TableTextService\ Rundll32 TableTextService.dll UnregisterProfile TableTextServiceSimplifiedwbzx86.txt Del "%programFiles%\Windows NT\TableTextService\TableTextServiceSimplifiedwbzx86.txt" Del "%programFiles%\Windows NT\TableTextService\zh-CN\wbzx86.ico" Del "%programFiles% (x86)\Windows NT\TableTextService\TableTextServiceSimplifiedwbzx86.txt" Del "%programFiles% (x86)\Windows NT\TableTextService\zh-CN\wbzx86.ico" 将上述两个脚本文件连同TableTextServiceSimplifiedwbzx86.txt和zh-CN\wbzx86.ico复制到同一文件夹,运行WbzxSetupx64即可实现该输入法的安装,运行wbzxUninstallx64.cmd即可实现该输入法的卸载. (2)制作自解压包 选中WbzxSetupx64,wbzxUninstallx64.cmd,TableTextServiceSimplifiedwbzx86.txt和zh-CN\wbzx86.ico,右击鼠标添加到WINRAR包,选中制作自解压格式压缩文件. 选中高级选项卡,设定解压路径和解压后运行文件名: wbzxReg(x64).cmd,如果是32位系统则更改为相应的32位文件wbzxReg(x86).cmd.如果没有产生相应的输入法,还可以在输入法设置中添加此输入法. 由此得到的输入法与WINDOWS7内置输入法在使用方法上没有两样.上述方法若有不当之处,敬请指正. 附:完整的码表文件头部分 [System] LangId = LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED GuidProfile={6F89EB9B-88D5-4720-8AA6-5B23142D1E0D} Description="自定义五笔字型86版" Display Description="自定义五笔字型86版" Enable=1 Icon=%programFiles%\Windows NT\TableTextService\zh-CN\wbzx86.ico IconIndex=0 [Configuration] ShowIncrementalCandidateImmediately=1 MakePhraseFromText=1 Wildcard=1 DisableWildcardAtFirst=1 KeystrokeSort=1 CandidateWindow.Width=12 Composition.ConversionOnlyOneItem=1 [PreservedKey] GuidImeMode={98213494-367A-4855-90A1-97D917E3EC3D} KeyDefineImeMode=VK_SHIFT, TF_MOD_ON_KEYUP_SHIFT_ONLY DescriptionImeMode="@%programFiles%\Windows NT\TableTextService\TableTextService.dll,-20" ImeMode=1 GuidDoubleSingleByte={F1101BB8-CD65-4ceb-B5BD-8ECDD574D1D0} KeyDefineDoubleSingleByte=VK_SPACE, TF_MOD_SHIFT DescriptionDoubleSingleByte="@%programFiles%\Windows NT\TableTextService\TableTextService.dll,-23" DoubleSingleByte=0 GuidPunctuation={172D66D5-5EDE-4fb7-8B00-209BE826758D} KeyDefinePunctuation=VK_OEM_PERIOD, TF_MOD_CONTROL DescriptionPunctuation="@%programFiles%\Windows NT\TableTextService\TableTextService.dll,-26" Punctuation=1 [LanguageBar] GuidImeMode={8F0F77F4-3071-4fc8-9DB8-F712228D5B72} DescriptionImeMode="Conversion mode" TooltipImeMode="@%programFiles%\Windows NT\TableTextService\TableTextService.dll,-20" EnableImeMode=1 ImeModeOnIconIndex=ICON_IME_MODE_ON ImeModeOffIconIndex=ICON_IME_MODE_OFF GuidDoubleSingleByte={23952935-FE82-40bc-A83A-F6D49F943043} DescriptionDoubleSingleByte="Character width" TooltipDoubleSingleByte="@%programFiles%\Windows NT\TableTextService\TableTextService.dll,-23" EnableDoubleSingleByte=1 DoubleSingleByteOnIconIndex=ICON_DOUBLE_SINGLE_BYTE_ON DoubleSingleByteOffIconIndex=ICON_DOUBLE_SINGLE_BYTE_OFF GuidPunctuation={277CA405-EA1F-4e08-B772-A5B47D192B9E} DescriptionPunctuation="Punctuation" TooltipPunctuation="@%programFiles%\Windows NT\TableTextService\TableTextService.dll,-26" EnablePunctuation=1 PunctuationOnIconIndex=ICON_PUNCTUATION_ON PunctuationOffIconIndex=ICON_PUNCTUATION_OFF [Profile] KeystrokeFile ="%programFiles%\Windows NT\TableTextService\TableTextServiceSimplifiedwbzx86.txt" DictionaryFile="%programFiles%\Windows NT\TableTextService\TableTextServiceSimplifiedwbzx86.txt" [Keystroke.Candidate] VK_OEM_PLUS, 0 = MOVE_PAGE_DOWN VK_OEM_MINUS, 0 = MOVE_PAGE_UP [Keystroke.Composition] VK_A, 0 = INPUT // A VK_B, 0 = INPUT // B VK_C, 0 = INPUT // C VK_D, 0 = INPUT // D VK_E, 0 = INPUT // E VK_F, 0 = INPUT // F VK_G, 0 = INPUT // G VK_H, 0 = INPUT // H VK_I, 0 = INPUT // I VK_J, 0 = INPUT // J VK_K, 0 = INPUT // K VK_L, 0 = INPUT // L VK_M, 0 = INPUT // M VK_N, 0 = INPUT // N VK_O, 0 = INPUT // O VK_P, 0 = INPUT // P VK_Q, 0 = INPUT // Q VK_R, 0 = INPUT // R VK_S, 0 = INPUT // S VK_T, 0 = INPUT // T VK_U, 0 = INPUT // U VK_V, 0 = INPUT // V VK_W, 0 = INPUT // W VK_X, 0 = INPUT // X VK_Y, 0 = INPUT // Y VK_Z, 0 = INPUT // Z [Text] bmqi="阿贝尔" baot="阿基米德" …… 联系: 重庆沙坪坝林园:重庆通信学院数学教研室 陈代国 400035 EM:chendaiguo163@163.com PH:13883838681
本文档为【自制WINDOWS7输入法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_023365
暂无简介~
格式:doc
大小:244KB
软件:Word
页数:6
分类:
上传时间:2018-09-11
浏览量:256