Hướng dẫn căn bản làm bộ gõ Tiếng Việt
(Tạo ebook bằng openoffice xuất ra pdf)
Mở đầu
Bộ gõ tiếng việt là 1 đề tài không quá khó nếu chỉ làm đơn giản , ví dụ nếu chỉ làm bỏ dấu và mũ ngay
sau nguyên âm thì phải nói là rất dễ, nhưng bỏ dấu cuối từ, chỉnh vị trí dấu , check chính tả thì vấn đề
lớn đó, tùy theo trình độ , và quyết tâm hay mục đích mỗi người mà sẽ phát triển ứng dụng này đến
mức tương ứng . Bộ gõ mình làm là DotNetKey , bạn có thể xem chương trình ở đây (mã nguồn có thể
dùng reflector để dịch ngược file exe) , lập trình bằng c# 2005 , bạn cũng có thể dùng chương trình này
để dịch ra ngôn ngữ vb.net hay c++.net , đây là hình ảnh mình dịch ngược DotNetKey :
http://dotnetkey.googlecode.com/
Đây là hướng dẫn căn bản , mình không hướng dẫn tỉ mỉ đến mức chi tiết thuật toán , vì mỗi người lập
trình 1 kiểu riêng , thuật toán riêng.
Nhận ký tự gõ vào và xuất tiếng việt
Nhận ký tự gõ
Để nhận ký tự gõ bạn đương nhiên phải nghiên cứu kỹ thuật hook rồi , đối với các ngôn ngữ khác như
thế nào không biết nhưng với c# , mình tìm được thư viện hook sẵn trên trang codeproject :
http://www.codeproject.com/KB/cs/globalhook.aspx
Nên mình cũng không có nghiên cứu hook nữa (^_^) , đó chính là phần namespace
gma.System.Windows trong mã nguồn của mình , cách dùng như sau:
1 . khai báo using gma.System.Windows
2 .Tạo đối tượng , handle event sau đó sử dụng y hệt như các sự kiệu key và mouse trong form là xong
như ví dụ sau
UserActivityHook actHook;
void MainFormLoad(object sender, System.EventArgs e)
{
actHook= new UserActivityHook(); // crate an instance
// hang on events
actHook.OnMouseActivity+=new MouseEventHandler(MouseMoved);
actHook.KeyDown+=new KeyEventHandler(MyKeyDown);
actHook.KeyPress+=new KeyPressEventHandler(MyKeyPress);
actHook.KeyUp+=new KeyEventHandler(MyKeyUp);
}
3 . Now, an example of how to process an event:
public void MouseMoved(object sender, MouseEventArgs e)
{
labelMousePosition.Text=String.Format("x={0} y={1}", e.X, e.Y);
if (e.Clicks>0) LogWrite("MouseButt