1. A computing system for application sharing, the computing system comprising: a communication device for communicating across a communication network; a processor communicatively connected to the communication device; and memory storing program instructions, which when executed by the processor cause the computing system to provide tools when sharing a software application, the instructions causing the identification of a controller, the controller being a single computing system that is currently configured to receive input from a user to control the shared software application, the tools comprising: a system clipboard for storing information identified by a user and for subsequently providing the information to the software application; a clipboard state buffer for transferring the information from the system clipboard when control of the shared software application changes from the computing system to a remote computing system, storing the information, and replacing the information on the system clipboard when control of the shared software application changes from the remote computing system to the computing system; and a clipboard synchronizer for synchronizing the system clipboard with a remote system clipboard when the remote computing system is controlling.