顯示具有 輸入法 標籤的文章。 顯示所有文章
顯示具有 輸入法 標籤的文章。 顯示所有文章

2013年9月3日 星期二

[轉貼] 自製輸入法才夠cool~超蝦輸入法-梅蝦米

出處:http://www.minwt.com/pc/2298.html

  很早之前梅干在MAC平台下,就使用過香草輸入法,也曾修正跳格的問題,當時對liu.cin參考檔一點感覺也沒,最近梅干在MACUKNOW中,看到直接將Liu3.cin嘸蝦米參考檔,拷貝到指定的目錄就可使用嘸蝦米了,這時突然打醒了梅干,原來字打的出來,一切都是因為那一個cin的參考檔,把字根跟文字對應好,之後當輸入相關的字根,就會自動對應相關文字,這麼說不就可以自創自已的輸入法了嗎?所以這一、二天也讓梅干對輸入法感到興趣,上網找了一些資料,哈~終於真的可創自已的字根,同時還可自製專屬的輸入法與安裝檔,真的很cool~喔!

輸入法的字根設定:
Step1
開啟記事本,在最上方先設定輸入法所會用到的按鍵,之後在下方前面是字根後面是文字,字根與文字間要空一格,如:886 掰啦,輸入完畢後再儲存成txt檔就行了。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
輸入法製作精靈:
Step2
接著點選 開始 / 程式集 / 附屬應用程式 / 通用輸入法編輯工具。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step3
分別設定輸入法的名稱與輸入法的檔名(只可用英文檔名)。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step4
接著將剛作好的字根檔載入。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step5
設定字根的長度,檢查一下字根表中最長字根碼。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step6
按下【完成】等它封裝好就完成囉!
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step7
開啟記事本測試看看,直接打minwt哈~就會直接出現梅問題啦!cool~
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米

梅干有載入liu3.cin的參考檔,當字根相同時,就會出現選單來選字,完全不用擔心相同字根,產生衝突的問題。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
輸入法安裝程式製作:
Step8
進入我的電腦 C:\WINDOWS\system32,找到剛所設定輸入法的名稱,分別將xx.IME、xx.TBL、xxPHR.TBL、xxPTR.TBL四個檔案複製出來。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step9
點選 開始 / 執行 /regedit,[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\XXXX匯出。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step10
這時資料夾內分別會有五個檔案。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step11
接著將全部的檔案選取起來,按滑鼠右鍵選擇【加到壓縮檔】。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step12
進入winrar後,將建立自我解壓縮檔勾起來,並將頁籤切到【進階設定】,再點選【自解檔選項】鈕。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step13
進入【進階自解檔選項】視窗,在【一般設定頁籤】在解壓路徑輸入C:\WINDOWS\system32,以及在解壓縮之後執行,輸入剛所匯出的.reg檔,完成後再將頁籤切到【文字及圖示】,設定視窗標題的文字與圖示。
梅問題-自製輸入法才夠cool~我的超蝦輸入法-梅蝦米
Step14 (詳閱原站.......)

[轉貼] C# IME 輸入法 教程

出處:http://hi.baidu.com/752664788/item/3e950d5275f677dfd48bacd2

首先,我要介紹一下編寫這個控件的核心dll:
DLL 文件: imm32.dll
DLL 名稱: Microsoft Windows IMM32 API Client DLL 或
描述:
imm32.dll是微軟Microsoft Windows輸入法管理相關文件。
屬於: Microsoft Windows (IMM)
我們要做的,就是調用這個dll中的:
[DllImport("Imm32.dll")]
public static extern IntPtr ImmGetContext(IntPtr hWnd);
和:
[DllImport("Imm32.dll")]
public static extern IntPtr ImmAssociateContext(IntPtr hWnd, IntPtr hIMC);
簡單介紹一下:
ImmAssociateContext,這個api函數是調用輸入法的,第一個句柄是要調用輸入法的控件或窗體的句柄,第二個是不太好解釋,簡單說下要在IME中檢索或設置信息,應用程序必須首先獲得一個與指定窗口相關聯的輸入上下文的句柄。你可以通過ImmGetContext函數來獲得這個句柄,這樣說很彆扭啊,不知朋友們能否理解?

ImmGetContext這個api是為ImmAssociateContext它的第二個參數準備的,他的參數是控件或窗體的句柄,返回的是某控件聯繫上下文的句柄。如果你不理解,其實也無所謂,理論性的東西,誰叫微軟搞的這麼抽像呢!
下一步,我們新建一個winform創意,放上一個label控件,name是label1

我先把代碼貼出來,因為過程十分簡單,我也不做太多的介紹了:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
IntPtr m_hImc;
public const int WM_IME_SETCONTEXT = 0x0281;
private const int WM_CHAR = 0x0102;
private const int WM_IME_COMPOSITION = 0x010F;
private const int GCS_COMPSTR = 0x0008;
[DllImport("Imm32.dll")]
public static extern IntPtr ImmGetContext(IntPtr hWnd);
[DllImport("Imm32.dll")]
public static extern IntPtr ImmAssociateContext(IntPtr hWnd, IntPtr hIMC);
private const int HC_ACTION = 0;
private const int PM_REMOVE = 0x0001;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_IME_SETCONTEXT && m.WParam.ToInt32() == 1)
{
ImmAssociateContext(this.Handle, m_hImc);
}
switch (m.Msg)
{
case WM_CHAR:
KeyEventArgs e = new KeyEventArgs(((Keys)((int)(m.WParam))) | ModifierKeys);
if (e.KeyCode == Keys.Back)
ChangeChar("back");
else if (e.KeyCode == Keys.Enter)
ChangeChar("enter");
else
{
char a = (char)e.KeyData;
intoText(a.ToString());
}
break;
}
}
private void intoText(string a)
{
label1.Text += a;
}
void ChangeChar(string a)
{
switch (a)
{
case "back":
if (label1.Text.Length > 0)
label1.Text = label1.Text.Remove(label1.Text.Length - 1);
break;
case "enter":
label1.Text += "\r\n";
break;
}
}
private void Form1_Load(object sender, EventArgs e)
{
m_hImc = ImmGetContext(this.Handle);
}
}
}

[轉貼] 輸入法反查拆碼及注音字顯示測試 v2


出處:http://blog.yam.com/dllee/article/12501370

幾天前發表的輸入法反查拆碼及注音字顯示測試,在顯示破音字上有一些問題,同時在操作上也會因輸入注音字後,顯示的選字浮動視窗擋住了 [ 拆碼 ] 按鈕。附件的更新版主要修正破音字顯示問題及修改版面,讓操作更方便。在顯示國字的部分,加上十字線,與低年級作業簿相同,另外加了顯示字型的選擇,可以使用其他字體顯示,如教育部標準字型,以下是截圖:

附件:輸入法反查拆碼及注音字顯示測試 v2