• Thứ Hai, 21/01/2008 13:21 (GMT+7)

    Lấy text từ một cửa sổ ứng dụng như file PDF, CHM...

    Câu hỏi :

    Cách lấy text của một cửa sổ bãng các hàm API? chãng hạn mở file *.pdf, *.chm ... và lấy text rồi xuất ra màn hình.

     



    Trả lời :
    Bạn có thể nhầm lẫn về yêu cầu của mình: lấy nội dung văn bản trong 1 cửa sổ ứng dụng hay lấy nội dung của file trên đĩa?

    Nếu muốn lấy nội dung file trên đĩa, bạn hãy gọi các hàm truy xuất file để đọc nội dung file vào bộ nhớ, sau đó dựa vào định dạng file cần xử lý mà xử lý theo yêu cầu của mình. Lưu ý, đa số các file ứng dụng có định dạng file khá phức tạp, bạn phải mất nhiều thời gian, công sức tìm hiểu mới nắm vững và truy xuất trực tiếp được file (thí dụ file *.doc, *.xls, *.chm, *.pdf).

    Nếu thấy việc truy xuất file trực tiếp quá khó khăn, bạn có thể dùng ứng dụng có sẵn nạp file vào bộ nhớ và hiển thị trên 1 cửa sổ của nó, rồi dùng qui trình copy nội dung của cửa sổ đó. Đây chính là yêu cầu đầu tiên của bạn, bạn có thể dùng qui trình copy sau đây (dù không hoàn toàn tổng quát nhưng đại đa số các cửa sổ đều hỗ trợ):

     - Xác định ID (tên nhận dạng) của cửa sổ ứng dụng cần lấy nội dung. Bạn có thể dùng hàm API tên là FindWindows().
     - Thiết lập cửa sổ ứng dụng cần lấy nội dung về trạng thái Active (Focus) để nó là cửa sổ duy nhất được phép nhận/xử lý các sự kiện phím/chuột. Bạn có thể dùng hàm API tên là SetFocus().
     - Giả lập sự kiện ấn tổ hợp phím Ctrl-A (để ứng dụng chọn tất cả nội dung của mình). Bạn có thể dùng hàm API tên là keybd_event().
     - Giả lập sự kiện ấn tổ hợp phím Ctrl-C (để ứng dụng copy vùng chọn vào clipboard).
     - Đọc nội dung clipboard và xử lý theo yêu cầu của mình. Bạn có thể dùng hàm API tên là GetClipboardData().
     Bạn nên đọc tài liệu hướng dẫn cụ thể về việc gọi các hàm API trên trong CD MSDN của Microsoft.
    Chuyên mục: Cơ sở dữ liệu