SYSTEMS AND METHODS FOR IMPLEMENTING PIXEL-BASED REVERSE ENGINEERING OF INTERFACE STRUCTURE
First Claim
1. A method, performed by a computer having a memory and a processor, for interpreting the contents of a user interface without requiring cooperation from the user interface, the method comprising:
- capturing pixel data of a source window associated with the user interface;
with a processor, identifying areas of the captured pixel data that at least substantially match features associated with at least one widget prototype of a prototype library; and
with a processor, identifying a user interface widget within the captured pixel data at least in part by determining whether a spatial relationship between at least two of the identified areas is consistent with at least one widget prototype of the prototype library.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for implementing real-time pixel-based reverse engineering of interface structures are disclosed herein. The system uses the pixels representing widgets and content of a user interface to analyze, interpret, and/or enhance the interface without requiring cooperation from the interface. The system captures pixel data and reverse engineers the composition and structure of the interface from the captured pixel data. Using the reverse engineered interface, generated based on the captured pixel data, the facility can identify and record user interactions with the interface, modify the display of the interface to meet user requirements, preferences, or customization options, or enhance the interface to provide functionality not otherwise available, etc. The system can perform these processes across a variety of interfaces regardless of their underlying implementation and without any modifications to the interface.
66 Citations
41 Claims
-
1. A method, performed by a computer having a memory and a processor, for interpreting the contents of a user interface without requiring cooperation from the user interface, the method comprising:
-
capturing pixel data of a source window associated with the user interface; with a processor, identifying areas of the captured pixel data that at least substantially match features associated with at least one widget prototype of a prototype library; and with a processor, identifying a user interface widget within the captured pixel data at least in part by determining whether a spatial relationship between at least two of the identified areas is consistent with at least one widget prototype of the prototype library. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable storage medium containing instructions that, when executed by a computer, perform steps comprising:
-
capturing pixel data of an interface; identifying features within the captured pixel data, each feature having an arrangement of pixels; and identifying at least one interface widget within the captured pixel data at least in part by determining whether a spatial relationship between at least two of the identified features is consistent with at least one widget prototype of the prototype library, each widget prototype specifying at least one arrangement of features. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computing system comprising:
-
a component configured to identify interface widget features within captured pixel data corresponding to a first interface; a component configured to identify a plurality of widget prototypes of a prototype library based on the identified interface widget features, each widget prototype specifying at least two features and having at least one associated constraint specifying a spatial relationship associated with at least one feature of the widget prototype; and a component configured to, in response to detecting a widget within the captured pixel data by comparing at least one of the identified widget prototypes to the captured pixel data, storing an indication of the detected widget. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
Specification