1. A device for determining changes to a graphical user interface (GUI) that does not require the use of a configuration file or the use of data from a previous operation of an application computer program, comprising: a) a first function block, having an input for receiving a GUI in which an application computer program is currently running, and having an output for transmitting what the first function block received and produced, wherein the first function block is on a user-definable computing device that includes a microprocessor; b) a second function block for determining a first tree structure for the GUI and its content while the application computer program is currently running, having an input connected to the output of the first function block, and having an output for transmitting what the second function block received and produced, wherein the second function block is on the user-definable computing device that includes the microprocessor; c) a third function block for identifying a communication from the application computer program to the GUI while the application computer program is currently running, having a first input connected to the output of the second function block, having a second input, having a third input, and having an output for transmitting what the third function block received and produced, wherein the third function block is on the user-definable computing device that includes the microprocessor; d) a fourth function block for determining if the communication identified in the third function block does not change the GUI while the application computer program is currently running and, if so, returning operation of the device to the third function block, otherwise transferring operation of the device to a fifth function block, having an input connected to the output of the third function block, and having an output connected to the second input of the third function block for transmitting what the fourth function block received and produced, wherein the fourth function block is on the user-definable computing device that includes the microprocessor; e) the fifth function block for determining if the GUI has changed while the application computer program is currently running and, if so, determining a second tree structure for the changed GUI while the application computer program is currently running, having an input connected to the output of the fourth function block, and having an output for transmitting what the fifth function block received and produced, wherein the fifth function block is on the user-definable computing device that includes the microprocessor; f) a sixth function block for comparing the first tree structure to the second tree structure and identifying a change there between, having an input connected to the output of the fifth function block, and having an output for transmitting what the sixth function block received and produced, wherein the sixth function block is on the user-definable computing device that includes the microprocessor; g) a seventh function block for discarding the first tree structure, having an input connected to the output of the sixth function block, and having an output for transmitting what the seventh function block received and produced, wherein the seventh function block is on the user-definable computing device that includes the microprocessor, and where the sixth function block is comprised of: a. a seventeenth function block for receiving the first tree structure and the second tree structure, having a first input, having a second input, having a third input, and having an output for transmitting what the seventeenth function block receives and produces, wherein the seventeenth function block is on the user-definable computing device that includes the microprocessor; b. an eighteenth function block for checking for a structure object in the first tree structure that does not appear in the second tree structure, having an input connected to the output of the seventeenth function block, and having an output for transmitting what the eighteenth function block receives and produces, wherein the eighteenth function block is on the user-definable computing device that includes the microprocessor; c. a nineteenth function block for checking for a structure object in the second tree structure that does not appear in the first tree structure, having an input connected to the output of the eighteenth function block, and having an output for transmitting what the nineteenth function block receives and produces, wherein the nineteenth function block is on the user-definable computing device that includes the microprocessor; d. a twentieth function block for selecting an object that appears in the first tree structure and the second tree structure at a top level, having an input connected to the output of the nineteenth function block, and having an output for transmitting what the twentieth function block receives and produces, wherein the twentieth function block is on the user-definable computing device that includes the microprocessor; e. a twenty-first function block for checking in the selected object a name of an object in the first tree structure and the second tree structure for any change there between, having an input connected to the output of the twentieth function block, and having an output for transmitting what the twenty-first function block receives and produces, wherein the twenty-first function block is on the user-definable computing device that includes the microprocessor; f. a twenty-second function block for checking in the selected object a value of an object in the first tree structure and the second tree structure for any change there between, having an input connected to the output of the twenty-first function block, and having an output for transmitting what the twenty-second function block receives and produces, wherein the twenty-second function block is on the user-definable computing device that includes the microprocessor; g. a twenty-third function block for selecting a child object if the selected object has a child object and returning to the seventeenth function block, otherwise proceeding to the next step, having an input connected to the output of the twenty-second function block, and having an output connected to the second input of the seventeenth function block for transmitting what the twenty-third function block receives and produces, wherein the twenty-third function block is on the user-definable computing device that includes the microprocessor; and h. a twenty-fourth function block for selecting an object at a top-most level available that has not been selected and returning to the seventeenth function block, having an input connected to the output of the twenty-third function block, and having an output connected to the third input of the seventeenth function block for transmitting what the twenty-fourth function block receives and produces, wherein the twenty-fourth function block is on the user-definable computing device that includes the microprocessor; h) an eighth function block for renaming the second tree structure as the first tree structure, having an input connected to the output of the seventh function block, and having an output for transmitting what the eighth function block received and produced, wherein the eighth function block is on the user-definable computing device that includes the microprocessor; and i) a ninth function block for transmitting the identified change to a user, and returning operation of the device to the third function block, having an input connected to the output of the eighth function block, and having an output connected to the third input of the third function block for transmitting what the ninth function block received and produced, wherein the ninth function block is on the user-definable computing device that includes the microprocessor.