Lessons XVIII : AutoIT – Bài 3: Sử dụng Window Info

AutoIT – Bài 3: Sử dụng Window Info

Thứ sáu, 05 Tháng 9 2008 14:59 Lee Sai Hướng dẫn lập trình AutoIT
Email In

Để có thể tận dụng hết sức mạnh của AutoIT thì không thể bỏ qua Tiện ích này. Tuy nhiên sau khi đọc bài này xong, bạn nào có cách khác hoặc có chương trình nào tốt hơn vẫn có thể dùng, vì mục đích cuối cùng là làm sao lấy được thông tin của những đối tượng cần Tương Tác, do đó dùng cách nào cũng không quan trọng

Sử dụng Window Info thật ra không có gì khó, vì những gì tụi mình phải làm là Rê chuộtĐọc  . Rê chuột thì chắc khỏi chỉ nha (còn bạn nào không biết thật, đóng 7 triệu mình kèm cho 1 khóa Rê Chuột  ), vấn đề còn lại đọc cái gì. Đọc cái gì thì phụ thuộc vào chuyện tụi mình Rê Chuột vô cái gì. Bây giờ mình làm thẳng 1 ví dụ để dễ hiểu:

– Giả sử mình cần thông tin về chương trình Calculator.exeNút Backspace có trong Calculator. Giờ ta mở Calculator lên, đây là máy tính cầm tay Ảo có sẵn trong WindowXP. Khi mở giao diện Calculator lên có thể khác với Hình minh họa, bạn nào biết thì chỉnh lại, không thì cứ để kệ nó không sao.
rip Calculator: C:\WINDOWS\system32\calc.exe

– Sau đó mở Window Info của AutoIT lên.
rip \AutoIt3\Au3Info.exe

– Tiếp đến Rê Chuột lên Calculator, sẽ không có gì xảy…
–  Hì hì ghẹo các bạn 1 tý cho đỡ mệt, thật ra muốn lấy thông tin 1 đối tượng nào đó thì yêu cầu là đối tượng đó phải được kích hoạt. Hướng dẫn thêm cho nhưng bạn chưa biết nè…
– Trong trường hợp Đối Tượng là 1 Chương Trình thì Kích Hoạt có nghĩa là Chương Trình đang ở vị trí cao nhất, đè lên tất cả các chương trình còn lại.
– Còn nếu Đối Tượng là 1 Nút, 1 Chỗ Nhập Liệu,… thì Kích Hoạt có nghĩa là Đối Tượng đó phải thuộc 1 Chương Trình ở vị trí Cao Nhất. Và để Chương Trình ở Vị Trí cao nhất chỉ cần Click chuột vào chương trình đó là đủ.
– Vậy cuối cùng ở bước này việc ta phải làm là: Rê Chuột lên Calculator và Click. Lúc này bạn sẽ thấy Window Info xuất hiện các thông tin có liên quan đến Calculator.
bug Mình sẽ giải thích từ trên xuống:

  • Đầu tiên là vùng Basic Window Info trong vùng này có 2 thông tin cần đọc là Title tên của Calculator và Class cái này mình không biết dịch chính xác thế nào, nhưng có thể hiểu Class giống như Tên Trong của Calculator (Chương Trình) nó được dùng để phân loại. AutoIT có 1 hàm có thể thay đổi thông tin của Title, nhưng thông tin của Class thì không thể thay đổi. Dựa vào 2 thông tin cơ bản này, dùng Code AutoIT có thể nhận dạng và điều khiển Calculator 1 cách khá chính xác.
  • Vùng tiếp theo là Basic Control Info vùng này cũng có 2 thông tin (có thể bị trống), đó là thông tin nhận dạng của các đối tượng nằm trong Calculator, tương tự như Title và Class ở trên.
  • Nhân tiện mình nói luôn, AutoIT gọi các Đối Tượng thuộc 1 Chương Trình là Control và Gọi 1 Chương Trình là Window, từ nay tụi mình cũng sẽ gọi như thế để dễ phân biệt.
  • Vùng cuối cùng là các Tab với nhưng thông tin khác bên trong, nhìn tên Tab chắc những bạn biết tiếng Anh cũng hiểu được phần nào nội dung bên trong Tabs là gì.

– Để chắc ăn mình sẽ giải thích ý nghĩa các thông tin trong từng Tab (từ Trái sang Phải) cho các bạn:
bug Đầu tiên là Tab Window

  • Title và Class: 2 thông tin này với thông tin Title/Class trên vùng Basic Window Info hoàn toàn là 1, chúng không có gì khác nhau nên không phải nó thêm.
  • Position: đây là thông tin về vị trí của Calculator, được tính bằng vị trí điểm Bên Trái – Góc Trên Cùng của Calculator. Trong đó số thứ nhất là chiều Ngang (khoảng cách từ Trái qua), số thứ hai là chiều Dọc (khoảng cách từ Trên xuống). 2 số này trên lý thuyết là không thể nhỏ hơn 0 và lớn hơn kích thước của màn hình, nhưng thực tế chúng vẫn có thể vượt qua 2 giới hạn đó. Nếu tụi mình di chuyển Calculator thì 2 thông số này sẽ thay đổi theo.
  • Size: là kích thước của Calculator, số thứ nhất là chiều Ngang (Width), số thứ 2 là chiều Cao (Height), 2 số này có thể thay đổi bất kỳ lúc nào bởi các Hàm của AutoIT. Tuy nhiên việc thay đổi chúng có thể ảnh hưởng tới giao diện của chương trình.
  • Style: là mã số Kiểu của Calculator, nói đúng hơn là kiểu Window, thông tin này được lưu dưới dạng số Hex. Khi thay đổi thông tin này với 1 giá trị thích hợp, kiểu của Window sẽ bị thay đổi. Tụi mình sẽ nói nhiều hơn về mã số này trong những bài sau.
  • ExStyle: là mã số của kiểu mở rộng, mã số này dùng kết hợp với Style sẽ cho ra nhiều kiểu Window phong phú.
  • Handle: đây là thông tin đáng quan tâm nhất trong Tab này, vì Handle được xem là mã số của đối tượng. Thông qua Title và Class lập trình viên phải có giải thuật để lấy được mã số Handle này, thông tin Handle có được trong Window Info chỉ có tính chất kiểm tra. Mã số này được cấp phát 1 cách không trùng lặp cho các đối tượng mỗi khi chúng được tạo ra. Khi có được thông tin về Handle của 1 Đối Tượng nào thì tụi mình hoàn toàn có thể kiểm soát được đối tượng đó.

bug Tab Control – Giờ tụi mình Rê Chuột lên Nút Backspace của Calculator.

  • Class và Instance: cũng là 2 thông tin được hiển thị ở vùng Basic Control Info, chúng có vai trò giống như Title và Class của Calculator.
  • ClassnameNN và Advanced(Class): cũng là 2 thông tin hỗ trợ cho việc nhận dạng các Nút Backspace. Thông tin của chúng là sự kết hợp của Class và Instance, giúp tiết kiệm biến khi lập trình.
  • ID: đây cũng là mã ở dạng số thập phân, trong 1 chương trình các Control thường có ID tăng dần từ 1. Nó có thể thay thế cho Handle trong việc kiểm soát các Control nói chung và Nút Backspace nói riêng, thông tin ID không cần giải thuật để xác định bởi nó là cố định, lập trình viên có thể dùng Window Info để xem thông tin về ID và đưa thẳng vào Code. Tuy nhiên không phải bất kỳ Control nào cũng có ID, khi đó cần dựa vào các thông tin còn lại để xác định Handle mới có thể kiểm soát Control.
  • (Thông Tin Mới): Các File Flash [*.SWF] có số ID không theo quy tắc đã kể trên, mà giống như Handle, thay đổi mỗi lần được tạo ra.
  • Text: đây là giá trị chuỗi có trong Nút Backspace cũng chính là “Backspace”, thông tin này có thể bị bỏ trống. Nó cũng là phần quan trọng trong việc xác định nút Backspace.
  • Position: cũng giống như Position của Calculator, Postition của nút Backspace cũng là lưu thông tin vị trí. Nhưng vị trí này là vị trí của nút Backspace so với Calculator. Vấn đề này nếu các bạn chưa rõ thì đến phần thiết kế giao diện mình sẽ nói rõ hơn, vì chắc chắn sẽ dùng đến nó khi thiết kế Giao Diện chương trình.
  • ControlClick Coords: đây là thông tin về tọa độ của 1 điểm trên nút Backspace so với chính nút Backspace.
  • Style,ExStyle và Handle: 3 thông tin này hoàn toàn tương tự như của Window, nên mình bỏ qua không giải thích thêm.

bug Tab Visible Text

  • Tab này có vai trò giống như Text của nút Backspace, hiển thị nội dung văn bản có trong Calculator. Vì nó có thể chứa đựng 1 nội dung lớn nên được đưa ra 1 Tab riêng và cũng có thể bị bỏ trống.

bug Tab Hidden Text

  • Nếu Tab Text hiển thị nội dung văn bản có tính chất Công Khai (dễ dàng nhìn thấy) thì Tab này sẽ hiển thị nội dung bị ẩn đi bởi 1 lý do nào đó, có thể là Người thiết kế Chương Trình (Calculator) cố tình che giấu, trong trường hợp của Calculator Tab Hidden Text bị bỏ trống vì không có thông tin ẩn.

bug Tab StatusBar

  • Đây là Tab hiển thị toàn bộ nội dung có trên thanh trạng thái của 1 Calculator. Tab gồm có 2 phần: thứ nhất là bên trái (Property) là số thứ tự của nội dung và phần bên phải (Value) là nội dung của StatusBar. Nhưng vì Calculator không có Thanh Trạng Thái nên Tab này bị bỏ trống.

bug Tab Mouse

  • Position: hiển thị thông tin về Vị Trí chuột, thông tin này có thể dùng cho việc xác định vị trí 1 Đối Tượng bất kỳ đối với Màn Hình, có thể tạm thay thế cho Position của Đối Tượng đó.
  • CursorID: là mã số mô tả kiểu của Con Trỏ Chuột. Giới hạn của mã số này là từ 0 đến 15, tương ứng với 16 kiểu trỏ chuột, trong đó 0 là kiểu không xác định.
  • Color: Đây là mã số Màu ở dạng số Hex của 1 điểm Ảnh (Pixel) mà Con trỏ Chuột chỉ tới. Thông tin này chỉ có tính chất kiểm tra, vì để lấy màu của Điểm Ảnh AutoIT đã có 1 hàm khác làm việc này.

bug Tab Summay: đây là Tab tổng hợp thông tin của các Tab trước, thông tin bên trong được phân theo Tab.

– Window Info còn có 1 số Tùy Chọn khác trong Menu Options, nhưng mình chỉ muốn nói thêm về Freeze nó cho phép đóng băng Thông Tin lấy được từ Đối Tượng. Tụi mình nên dùng phím tắt Ctrl+Alt+F để sử dụng chức năng này, như thế sẽ hiệu quả hơn.

Nguồn: leesai.co.cc

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: