Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Gửi ký tự unicode đến cửa sổ bất kỳ ?

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    78

    Mặc định Gửi ký tự unicode đến cửa sổ bất kỳ ?

    Chỉ mới học C4W 1 thời gian mà thầy quất cái đề ác quá "Viết một chương trình nhỏ mô phỏng bộ gõ unikey với kiểu gõ vni và font unicode"

    Em đã nghiên cứu xong hook nhưng đến phần dùng hàm PostMessage() để send ký tự đến cửa sổ thì đụng phải vấn đề là ký tự bị sai lệch mà em ko biết nguyên nhân tại sao ?

    Đây là 1 phần DLL của em :

    Code:
    #include <windows.h>
    
    #pragma data_seg("SDATA")
    HHOOK hGlobalHook = NULL;
    #pragma data_seg()
    
    LRESULT CALLBACK FilterFunction(int nCode, WPARAM wParam, LPARAM lParam)
    {
    	// other statements ...
    	if (nCode == HC_ACTION) {
                    // other statements ...
    		unsigned char uniChar = 0x1EA5; // 0x1EA5 là 'ấ'
                   unsigned char ascChar = 0x61; // 0x61 là 'a'
    		PostMessage(GetFocus(), WM_CHAR, ascChar, lParam);
    		return 1;
    	}
    	return CallNextHookEx(hGlobalHook, nCode, wParam, lParam);
    }
    Đoạn màu đỏ : nếu em sử dụng tham số cho hàm PM là ASCII thì send rất tốt nhưng khi chuyển qua UNICODE thì ký tự bị sai, ra mấy cái ký tự gì rất kỳ cục

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Sai ở chỗ này nè bạn :

    Code:
    unsigned char uniChar = 0x1EA5;
    Unicode là 2 byte, bạn ko thể lưu vào biến kiểu char được.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Ép về UTF-8 là được tất

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    78

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Ép về UTF-8 là được tất
    Làm thế nào để ép ? Chỉ em với !

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    78

    Em đã sử dụng kiểu wchar_t nhưng vẫn không được ! Ai chỉ em cách ép theo utf-8 với !

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    78

    Mặc định Gửi ký tự unicode đến cửa sổ bất kỳ ?

    Hic ko ai giúp

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Hàm PostMessage có một phiên bản dành cho Unicode là PostMessageW. Nếu bạn dùng VC6 thì phải dùng LoadLibrary và GetProcAddress để gọi được hàm này. Tuy nhiên dù mình có gửi unicode đi mà cửa sổ nhận ko hỗ trợ unicode thì cũng bằng thừa.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  8. #8
    Ngày gia nhập
    02 2009
    Bài viết
    88

    Hàm PostMessage có một phiên bản dành cho Unicode là PostMessageW. Nếu bạn dùng VC6 thì phải dùng LoadLibrary và GetProcAddress để gọi được hàm này. Tuy nhiên dù mình có gửi unicode đi mà cửa sổ nhận ko hỗ trợ unicode thì cũng bằng thừa.
    thì cũng giống như việc dùng unikey gõ vào notepad khi đang để chế độ ANSI thôi

  9. #9
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi RadiRadic Xem bài viết
    thì cũng giống như việc dùng unikey gõ vào notepad khi đang để chế độ ANSI thôi
    Ko phải vậy đâu bạn, notepad có hỗ trợ unicode đó, chỉ có lúc save lại nếu mình ko chọn gì thì nó mặc định là ANSI. Nhưng nếu bạn chọn kiểu save là unicode thì nó vẫn save được định dạng unicode đó.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Các đề tài tương tự

  1. Làm thế nào để chuyển đổi Unicode tổ hợp sang Unicode dựng sẳn dùng std::codecvt?
    Gửi bởi doicanhden trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 2
    Bài viết cuối: 02-08-2013, 10:27 AM
  2. Lập trình C Đọc và ghi mã unicode vào tập tin
    Gửi bởi linh062 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 12-04-2013, 03:20 AM
  3. C++ : Convert TCVN3 to Unicode và ngược lại Unicode to TCVN3
    Gửi bởi langman trong diễn đàn Tutorials và Thủ thuật Visual C++
    Trả lời: 0
    Bài viết cuối: 24-01-2013, 10:06 PM
  4. QString lưu và hiển thi chữ unicode ?
    Gửi bởi haian trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 3
    Bài viết cuối: 03-05-2011, 10:18 AM
  5. Chuyển chữ hoa chữ thường UNICODE
    Gửi bởi hoanglinh9466 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 05-08-2009, 11:37 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn