求微软拼音输入法码表或逆转换后的文件。
就是包括所有汉字拼音及声调(如 汉Han3,语yu3)的文件。
请发到我的信箱:[email protected]
验证后即加分。

解决方案 »

  1.   

    给你一段代码,你整理一下:Option Explicit
    Private Const IME_ESC_MAX_KEY = &H1005
    Private Const IME_ESC_IME_NAME = &H1006
    Private Const GCL_REVERSECONVERSION = &H2
    Private Declare Function GetKeyboardLayoutList Lib "user32" (ByVal nBuff As Long, lpList As Long) As Long
    Private Declare Function ImmEscape Lib "imm32.dll" Alias "ImmEscapeA" (ByVal hkl As Long, ByVal himc As Long, ByVal un As Long, lpv As Any) As Long
    Private Declare Function ImmGetConversionList Lib "imm32.dll" Alias "ImmGetConversionListA" (ByVal hkl As Long, ByVal himc As Long, ByVal lpsz As String, lpCandidateList As Any, ByVal dwBufLen As Long, ByVal uFlag As Long) As Long
    Private Declare Function IsDBCSLeadByte Lib "kernel32" (ByVal bTestChar As Byte) As Long
    Public Function GetChineseSpell(Chinese As String, Optional Delimiter As String = " ", Optional IMEName As String = "微软拼音输入法", Optional BufferSize As Long = 255) As String
    If Len(Trim(Chinese)) > 0 Then
     Dim i As Long
     Dim s As String
     s = Space(BufferSize)
     Dim IMEInstalled As Boolean
     Dim j As Long
     Dim a() As Long
     
     ReDim a(BufferSize) As Long
     j = GetKeyboardLayoutList(BufferSize, a(LBound(a))) For i = LBound(a) To LBound(a) + j - 1
       If ImmEscape(a(i), 0, IME_ESC_IME_NAME, ByVal s) Then
         If Trim(IMEName) = Replace(Trim(s), Chr(0), "") Then
          IMEInstalled = True
          Exit For
         End If
       End If
     Next i
     If IMEInstalled Then
       Chinese = Trim(Chinese)
       Dim sChar As String
       Dim Buffer0() As Byte
       Dim bBuffer0() As Byte
       Dim bBuffer() As Byte
       Dim k As Long
       Dim l As Long
       Dim m As Long
       For j = 0 To Len(Chinese) - 1
         sChar = Mid(Chinese, j + 1, 1)
         Buffer0 = StrConv(sChar, vbFromUnicode)
         If IsDBCSLeadByte(Buffer0(0)) Then
          k = ImmEscape(a(i), 0, IME_ESC_MAX_KEY, Null)
          If k Then
            l = ImmGetConversionList(a(i), 0, sChar, 0, 0, GCL_REVERSECONVERSION)
            If l Then
             s = Space(BufferSize)
             If ImmGetConversionList(a(i), 0, sChar, ByVal s, l, GCL_REVERSECONVERSION) Then
               
               bBuffer0 = StrConv(s, vbFromUnicode)
               ReDim bBuffer(k * 2 - 1)
               For m = bBuffer0(24) To bBuffer0(24) + k * 2 - 1
                 bBuffer(m - bBuffer0(24)) = bBuffer0(m)
               Next m
               sChar = Trim(StrConv(bBuffer, vbUnicode))
               If InStr(sChar, vbNullChar) Then
                sChar = Trim(Left(sChar, InStr(sChar, vbNullChar) - 1))
               End If
                       
             End If
             
            End If
          End If
         End If
         GetChineseSpell = GetChineseSpell & sChar ''返回全拼
          Next j
     Else ''没安装“微软拼音输入法”,返回一个空格
        GetChineseSpell = " "
     End If
    Else
     GetChineseSpell = "" ''输入为空字符串
    End If
    End FunctionPrivate Sub Command1_Click()
    On Error Resume Next
    Dim i As Long
    Open "d:\pys.txt" For Binary As #1
    For i = -32767 To 0
    Put #1, , Chr(i) & GetChineseSpell(Chr(i)) & vbCrLf
    Next
    MsgBox "ok"
    Close #1
    End Sub
      

  2.   

    用Windows输入法生成器将mb文件逆转化为txt文件
      

  3.   

    Windows输入法生成器有妙用
    http://tech.sina.com.cn/c/2001-10-08/6239.html