Sử dụng autoit với ứng dụng được built bởi powerbuilder

Xin chào mọi người tại forum.

Hiện em đang tự học AutoIT để phục vụ công việc của mình. Chủ yếu là tự động hóa việc xuất và tổng hợp số liệu.

Tuy nhiên hiện ứng dụng tại công ty sử dụng powerbuilder thì không thể get được những thành phần (nội dung, id) của lưới, một số nút bấm, checkbox.

Không biết anh chị nào có kinh nghiệm trong việc sử dụng autoit với powerbuilder không ạ, em rất mong nhận được lời khuyên.

Em cũng đã tìm hiểu trên autoitviet, autoscript nhưng những topic đó dường như rất ít người biết đến powerbuilder.

Hi vọng sẽ gặp được những anh chị có kinh nghiệm có thể chia sẻ giúp em về những vấn đề trên ạ.

Em cảm ơn ạ!

Bạn đã dùng công cụ Window Info của AutoIt hỗ trợ nhưng không tìn được? Nhưng chắc vẫn tìm ra một khung điều khiển (control) nào đấy chứ, và nó bao toàn cửa sổ của ứng dụng.
Điều này cũng sẽ tương tự khi bạn dùng công cụ với ứng dụng được viết bằng Java Swing, JavaFx. Java AWT thì dùng điều khiển nội tại, nhưng giờ chả thấy ma nào dùng.

Nghĩa là: tất cả các khung điều khiển đều không phải nội tại của Window. Nó đã được vẽ lại trên 1 khung điều khiển duy nhất.

Giải pháp: bạn gửi các sự kiện mà bạn muốn lên cả cửa sổ hoặc khung điều khiển bao cả cửa sổ đó. Như nhấn chuột: thêm tọa độ chính xác của vị trí của nút (button), khung nhập văn bản (textbox),…

4 Likes

Cảm ơn bạn,

Đúng là khi tìm bằng windows info thì ko tìm được các elements nhỏ hơn, chỉ ra 1 khung điều khiển duy nhất.

Mình muốn lấy nội dung các chữ trong đó hơn là click chuột (click chuột đôi khi cũng cần).

Không biết bạn có cách nào không vì mình thử OCR bằng tesseract nhưng không khả thi lắm vì nhận diện không được tốt lắm (dù hoàn toàn bằng tiếng Anh).

Nó không có các khung riêng để có thể gọi WinAPI thì cách duy nhất là Nhận dạng kí tự quang học (OCR).
Nhận dạng chính xác hay không thì phụ thuộc vào phông chữ hiển thị. Nó mà dùng phông hơi “ngoằn ngoèo” thì thôi luôn.
Hãy thử dùng vài thư viện OCR khác nhau, cái nào độ chính xác cao hơn thì dùng.

5 Likes

cảm ơn bạn. Để mình thử lại cách khác xem có được không. Tạm mark solved luồng ạ.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?