1. A system, comprising: at least one hardware processor; at least one non-transitory computer-readable storage medium storing: a computer program for controlling multiple application programs to perform a task comprising a first sub-task to be performed by a first application program and a second sub-task to be performed by a second application program; and processor-executable instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform: accessing the computer program; generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of the first and second application programs, the generating comprising: obtaining a first hierarchical representation of active GUI elements of the first application program from an operating system; generating, based on the first hierarchical representation of active GUI elements of the first application program, a first portion of the object hierarchy corresponding to active GUI elements of the first application program, the first portion of the object hierarchy comprising a first object corresponding to a first active GUI element of the first application program; obtaining a second hierarchical representation of active GUI elements of the second application program from a source other than the operating system; generating, based on the second hierarchical representation of active GUI elements of the second application program, a second portion of the object hierarchy corresponding to the active GUI elements of the second application program, the second portion of the object hierarchy comprising a second object corresponding to a second active GUI element of the second application program, and combining the first portion of the object hierarchy and the second portion of the object hierarchy; controlling the first application program to perform the first sub-task using the computer program and the generated object hierarchy at least in part by: accessing, in the first portion of the object hierarchy, the first object corresponding to the first active GUI element of the first application program, and using the first object to cause, via the first active GUI element, the first application program to at least partially perform a first action in furtherance of the first sub-task; and controlling the second application program to perform the second sub-task using the computer program and the generated object hierarchy at least in part by: accessing, in the second portion of the object hierarchy, the second object corresponding to the second active GUI element of the second application program, and using the second object to cause, via the second active GUI element, the second application program to at least partially perform a second action in furtherance of the second sub-task.