1. A method of controlling the use of copies of computer software, said software including an application program for performing a desired task and a first control program, said first control program allowing said application program, or a copy thereof, to be executed on an authorized given machine, but preventing said application program, or a copy thereof, from being executed on another unauthorized machine, said method comprising the steps of: generating a configuration code in response to the hardware of said given machine; transmitting said configuration code to a remote machine, said remote machine being programmed with a second control program, one of said first or second control programs including information defining a number of authorized copies which can be and have been made for use on machines in addition to said given machine; generating, by said second control program, a permission code at said remote machine in response to said configuration code; transmitting said permission code to said given machine; entering said permission code as a part of said first control program to allow said associated application program, or copies thereof, to be executed only on said given machine; and determining whether the number of authorized copies has been reached and, if said number of authorized copies has not been reached, repeating said steps of generating a configuration code, transmitting said configuration code, generating a permission code, transmitting said permission code and entering said permission code for each additional machine on which said application program is to be executed.