用Windows自带的通用输入法编辑工具(在附件中,如没找到,请用安装盘装一下),选择逆转换,在Windows的系统目录下找相应的码表文件(.mb),转换后会生成一个文件格式的文件,所有汉字的输入法编码都在里面。

解决方案 »

  1.   

    Visual C++问题,当然是指用VC实现了。另外,我也不是指内码,而是指输入法编码。
      

  2.   

    要编程实现,问题就麻烦了,大致思路如下:
    1.确定用户正在用那一个编码方案(这一步可能最麻烦)
    2.按WHQ的思路找到你准备好的码表数据(内含或外带的)
    3.按图索骥查码表
    不知是否可行,祝你好运气
      

  3.   

    這里有一段Delphi的源碼, 看一看定有收獲
    //////////////////////////
    procedure TfrmQueryComposition.btnExecuteClick(Sender: TObject);
    var
      iHandleCount: integer;
      pList: array[1..nHKL_LIST] of HKL;
      szImeName: array[0..254] of char;
      i: integer;
      sFound: string;
    begin
      lstComposition.Items.Clear;
      // 取得目前系統已安裝輸入法之各個鍵盤配置(Keyboard Layout)
      iHandleCount := GetKeyboardLayoutList(nHKL_LIST, pList);
      for i := 1 to iHandleCount do
      begin
        if ImmEscape(pList[i], 0, IME_ESC_IME_NAME, @szImeName) > 0 then
        begin
          sFound := QueryCompStr(pList[i], edtExam.Text);
          if sFound <> '' then
            lstComposition.Items.Add(StrPas(szImeName) + ': ' + sFound);
        end;
      end;  // 將鍵盤焦點交給 edtExam, 方便繼續查下一個字
      with edtExam do
      begin
        SetFocus;
        SelStart := 0;
        SelLength := 2;
        ToChinese(Handle, True);
      end;
    end; { of btnExecuteClick }
      

  4.   

    对不起,Delphi的程序我看不太懂,有VC++的代码吗?
      

  5.   

    我按这段Delphi代码试写VC++程序,现发现两个问题,请教一下:
    1.ImmEscape调用只取到了“微软拼音输入法”一种输入法,但我的系统中共有4种输入法。GetKeyboardLayoutList()调用中取得的数字是对的;
    2.我找不到QueryCompStr在VC++中对应的API。
      

  6.   

    等到现在都没有更一步的资料,上面的高手中Fancy的回答与我的想法最为相近,与我要的答案只有一步之遥,所以我将所有分全给了他。