Microsoft Active Accessibility, VB6 และ Ranorex

Ranorex เป็นเครื่องมือทดสอบส่วนต่อประสานกับผู้ใช้สำหรับ Windows หากองค์ประกอบ UI รองรับ Microsoft Active Accessiblity (MSAA) ก็จะสามารถดึงข้อมูลที่สมบูรณ์เกี่ยวกับองค์ประกอบต่างๆ ได้ ซึ่งมีประโยชน์มากสำหรับการเขียนสคริปต์ทดสอบ

เรามีโค้ดเดิมจำนวนมากใน VB6 ซึ่งไม่รองรับ MSAA

ฉันกำลังพยายามเพิ่มการสนับสนุนนี้ให้กับ UserControls VB6 บางส่วนของเราดังต่อไปนี้

ฉันได้สร้างส่วนประกอบ ActiveX ใน C ++ โดยใช้ ATL ประกอบด้วยคลาสตัวช่วยที่ใช้อินเทอร์เฟซ IAccessible นอกจากนี้ยังมีฟังก์ชันการเริ่มต้นซึ่งสามารถเรียกได้จาก VB6

UserControl VB6 สร้างวัตถุตัวช่วยและส่งผ่านตัวจัดการหน้าต่างและชื่อไปยังฟังก์ชันการเริ่มต้น วัตถุตัวช่วยจัดคลาสย่อยหน้าต่างและจัดการข้อความ WM_GETOBJECT เพื่อให้อินเทอร์เฟซ IAccessible สำหรับหน้าต่าง

ฉันได้แก้ไขโค้ดแล้วและเท่าที่ฉันสามารถบอกได้ มันใช้งานได้ เครื่องมือ Ranorex Spy รับอินเทอร์เฟซ IAccessible และวิธีการเรียกบนอินเทอร์เฟซ

อย่างไรก็ตาม Ranorex จะไม่แสดงข้อมูลใด ๆ ที่ดูเหมือนว่าจะดึงมาจากอินเทอร์เฟซนี้

ฉันรู้ว่านี่เป็นปัญหาที่เฉพาะเจาะจงมาก แต่มีใครมีประสบการณ์ในการใช้งาน IAccessible เพื่อใช้ใน Ranorex หรือในเครื่องมือทดสอบอื่นๆ ที่คล้ายคลึงกันหรือไม่

ฉันยินดีที่จะให้รหัสของฉัน แต่ฉันคิดว่ามันมากเกินไปสำหรับการโพสต์ตามปกติ


person Phil Jollans    schedule 20.02.2016    source แหล่งที่มา


คำตอบ (1)


ดูเหมือนจะไม่เคยมีการใช้กันอย่างแพร่หลาย ฉันพบ breadcrumbs สองสามชิ้นที่ฉันสามารถแบ่งปันได้ ดังนั้นบางทีสิ่งเหล่านี้อาจจะมีคุณค่าบ้าง?

อันดับแรก:

Microsoft Active Accessibility 2.0 จัดส่งเป็นส่วนประกอบของระบบมาตรฐานใน Microsoft Windows XP...

นี่มาจาก MSAA20RDK\redist.txt และอธิบายต่อไปว่าสามารถติดตั้งลงใน Win2K และรุ่นก่อนหน้าได้อย่างไร เท่าที่ฉันสามารถระบุได้ว่าชิ้นส่วนและชิ้นส่วนต่างๆ นั้นรวมอยู่ใน XP และใหม่กว่า ดังนั้นคุณอาจไม่จำเป็นต้องดาวน์โหลด RDK ซึ่งโดยพื้นฐานแล้วไม่มีข้อมูลเลย และส่วนใหญ่เป็นเพียง DLL เท่านั้น

นี่คือลิงค์:

การทำซ้ำ Microsoft Active Accessibility 2.0

สิ่งที่อาจมีประโยชน์มากกว่า โปรดทราบว่านี่คือลิงก์ "ที่ใช้งานจริง" เพื่อดาวน์โหลด Word DOC:

Microsoft Active Accessibility 2.0

ฉันไม่พบลิงก์ "หน้า" ที่ MS Downloads ที่กล่าวถึงมัน นี่เป็นเอกสารขนาดใหญ่ที่ให้รายละเอียดมากมาย เกือบทั้งหมดสำหรับโปรแกรมเมอร์ C++ อย่างไรก็ตาม มี เล็กน้อย บน VB6

ที่กล่าวว่ามันบอกคุณเพียงเล็กน้อยยกเว้น:

โปรแกรมตัวอย่าง Visual Basic

หนังสือ Advanced Microsoft Visual Basic 6.0, 2nd Edition (Mandelbrot Set International, Ltd.) มีบทที่กล่าวถึง Active Accessibility บทนี้มีโค้ดตัวอย่างที่สาธิตวิธีใช้ API การเข้าถึงแบบแอ็คทีฟที่สำคัญ (สำนักพิมพ์ไมโครซอฟต์ ไอ 1-57231-893-7)

มีอีกนิดหน่อยแต่ไม่มาก หนังสือที่อ้างถึงอาจหายากอีกต่อไปแล้ว ฉันเห็นเพียงภาษาอิตาลีใน Amazon เท่านั้นแต่ลองขุดดูและบุคคลที่สามอาจขายที่นั่นหรือบน eBay เป็นต้น

ที่ลิงก์นี้: Microsoft Active Accessibility ข้อมูลจาก Word DOC นั้นดูเหมือนจะซ้ำกัน แม้ว่าอาจเป็นข้อมูลล่าสุดก็ตาม

person Bob77    schedule 20.02.2016
comment
ขอบคุณ @ Bob77 ฉันพบโปรแกรมตัวอย่างจากหนังสือ แต่ดูเหมือนว่าจะใช้งานและไม่ได้ใช้อินเทอร์เฟซ มีสำเนาหนังสือที่ใช้แล้วใน Amazon คุณลักษณะ Look Inside จะแสดงสารบัญและบทที่ 16 เป็นเรื่องเกี่ยวกับการเข้าถึง แต่ฉันก็ไม่หวังว่าจะช่วยได้ - person Phil Jollans; 21.02.2016
comment
จากสิ่งที่ฉันพบในเรื่องโปรแกรม VB6 ไม่สามารถเป็นเซิร์ฟเวอร์ได้ มีเพียงไคลเอนต์เท่านั้น ขอโทษ. - person Bob77; 21.02.2016
comment
เมื่อวานฉันตาบอด อินเทอร์เฟซ IAccessible ของฉันใช้งานได้ แต่ตอนนี้สายลับ Ranorex แสดงหน้าต่างสองครั้ง ครั้งแรกด้วยชื่อ ThunderRT6UserControlDC (จาก VB6) และอีกครั้งด้วยชื่อที่ส่งคืนผ่านอินเทอร์เฟซการเข้าถึง ตอนนี้ฉันแค่ต้องรวบรวมพวกเขาเข้าด้วยกัน :-) - person Phil Jollans; 21.02.2016
comment
นั่นเป็นข่าวดีมากกว่าที่ไม่สามารถทำได้ ขอให้โชคดี! - person Bob77; 21.02.2016