IP Library Granted Patent US 11,809,887
Granted Patent B2
US 11,809,887 · App. 17/478,504 · Granted Nov 7, 2023

Computing system for macro generation, modification, verification, and execution

Inventors: Edward Hinton (Dover, NH); Frank Pulito (Berlin, MA); Greg Giannone (Ayer, MA); Jonathan Ferrin (Derry, NH); Zachary Chupka (Pelham, NH)
G06F9/45512G06F3/023G06F9/448G06F9/544G06F3/0238G06F3/0346G06F3/0482G06F3/0484G06F3/04842G06F3/04895G06F9/451G06F9/455G06F9/541G06F9/542G06F11/3438
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,809,887
App. No.
17/478,504
Granted
Nov 7, 2023
Kind
B2
Abstract

An automation application is described herein. The automation application executes on a computing device and accesses a macro for a target application. The macro has been generated based upon a sequence of inputs from a user received by the target application that causes the target application to perform an action, screen states of the target application as the target application receives the sequence of inputs from the user, operating system processes that are performed by an operating system as the target application receive the sequence of inputs from the user, and evidence events representing information obtained from the operating system processes. The automation application executes the macro, wherein executing the macro causes the automation application to mimic the sequence of inputs to the target application, thereby causing the target application to perform the action.

Claims (68)

1. A computing system, comprising:

a processor; and

memory storing an automation application that, when executed by the processor, causes the processor to perform acts comprising:

obtaining a macro for a target application, wherein the macro has been generated based upon:

a sequence of inputs received by the target application from a user, wherein the sequence of inputs causes the target application to perform an action;

screen states of the target application as the target application receives the sequence of inputs from the user; and

operating system processes that are performed by an operating system executing concurrently with the target application as the target application receives the sequence of inputs from the user; and

executing the macro, wherein executing the macro causes the automation application to mimic the sequence of inputs to the target application, thereby causing the target application to perform the action;

wherein the screen states include screenshots of the target application; and one or both of:

characteristics of a display; or

font characteristics of the target application.

2. The computing system of claim 1 , wherein the sequence of input comprises a first input, a second input, and a third input, wherein executing the macro comprises:

mimicking the first input to the target application;

subsequent to mimicking the first input, accessing a screen state of the target application and an operating system process;

performing a selection of one of the second input or the third input based upon the screen state of the target application and the operating system process; and

mimicking one of the second input or the third input based upon the selection.

3. The computing system of claim 1 , wherein the macro comprises a directed graph comprising nodes and directed edges that connect the nodes, wherein each node represents an input in the sequence of inputs, wherein each edge is assigned criteria that are to be satisfied in order to traverse the edge, wherein the criteria are based upon the screen states and the operating system processes.

4. The computing system of claim 3 , wherein the directed graph is traversed by the automation application as the automation application executes the macro.

5. The computing system of claim 1 , the acts further comprising:

prior to obtaining the macro for the target application, receiving a first indication from the user that macro recording is to begin;

receiving the sequence of inputs to the target application from the user;

recording the sequence of inputs as the sequence of inputs is received;

recording the screen states of the target application as the sequence of inputs is received;

recording the operating system processes of the operating system as the sequence of inputs is received; and

upon receiving a second indication from the user that macro recording is to end, generating the macro based upon the sequence of inputs, the screen states, and the operating system processes.

6. The computing system of claim 1 , wherein the sequence of inputs include mouse clicks and keyboard strokes.

7. The computing system of claim 1 , wherein the target application presents a graphical user interface (GUI) on a display, wherein the sequence of inputs are mimicked to the GUI presented by the target application as the macro is executed, thereby causing the target application to perform the action.

8. The computing system of claim 1 , wherein the screen states include both:

characteristics of the display; and

font characteristics of the target application.

9. The computing system of claim 1 , wherein the target application is displayed within a window shown on a display as the sequence of inputs are mimicked to the target application.

10. The computing system of claim 1 , wherein the action comprises transmitting data to an application executing on a computing device, wherein the data is based upon the sequence of inputs mimicked to the target application.

11. The computing system of claim 1 , wherein the target application is an enterprise content management (ECM) application.

12. The computing system of claim 1 , wherein the macro has been generated additionally based upon evidence events representing information obtained from the operating system processes.

13. A method executed by a processor of a computing device while the processor executes an automation application, the method comprising:

obtaining a macro for a target application, wherein the macro has been generated based upon:

a sequence of inputs received by the target application from a user, wherein the sequence of inputs causes the target application to perform an action;

screen states of the target application as the target application receives the sequence of inputs from the user; and

operating system processes that are performed by an operating system executing concurrently with the target application as the target application receives the sequence of inputs from the user; and

executing the macro, wherein executing the macro causes the automation application to mimic the sequence of inputs to the target application, thereby causing the target application to perform the action;

wherein the screen states include screenshots of the target application;

and one or both of:

characteristics of a display; or

font characteristics of the target application.

14. The method of claim 13 , wherein the sequence of input comprises a first input, a second input, and a third input, wherein executing the macro comprises:

mimicking the first input to the target application;

subsequent to mimicking the first input, accessing a screen state of the target application, an operating system process, and user-defined criteria;

performing a selection of one of the second input or the third input based upon the screen state of the target application, the operating system process, and the user-defined criteria; and

mimicking one of the second input or the third input based upon the selection.

15. The method of claim 13 , wherein the operating system processes include one or more of:

operating system hook functions;

operating system message events;

operating system automation processes; or

command line emulation protocol responses.

16. The method of claim 13 , wherein mimicking the sequence of inputs to the target application is condition upon observing the screen states and the operating system processes.

17. The method of claim 13 , wherein obtaining the macro for the target application comprises retrieving the macro from a computer-readable data store.

18. The method of claim 13 , wherein obtaining the macro for the target application comprises receiving the macro from a computing device over a network connection.

19. The method of claim 13 , wherein the target application is a web application that executes in a browser.

20. A non-transitory computer-readable storage medium comprising an automation application that, when executed by a processor, causes the processor to perform acts comprising:

obtaining a macro for a target application, wherein the macro has been generated based upon:

a sequence of inputs received by the target application from a user, wherein the sequence of inputs causes the target application to perform an action;

screen states of the target application as the target application receives the sequence of inputs from the user; and

operating system processes that are performed by an operating system executing concurrently with the target application as the target application receives the sequence of inputs from the user; and

executing the macro, wherein executing the macro causes the automation application to mimic the sequence of inputs to the target application, thereby causing the target application to perform the action

wherein the screen states include screenshots of the target application;

and one or both of:

characteristics of a display; or

font characteristics of the target application.

Assignments (2)
SECURITY INTEREST Recorded Sep 19, 2023
From: HYLAND SOFTWARE, INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 064952/0333 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2021
From: HINTON, EDWARD; PULITO, FRANK; GIANNONE, GREG; FERRIN, JONATHAN; CHUPKA, ZACHARY
To: HYLAND SOFTWARE, INC.
Reel/Frame 058425/0696 →
Continuity (2)
Continuation 16545628 · Aug 20, 2019
Related Publication 20220004409A1 · Jan 6, 2022
Cited By (6)
US 12,387,036 US 12,430,150 US 12,437,238 US 12,566,913 US 12,585,862 US 12,619,815