I'm writing an application which needs to do some file operations, exist and the start again. The application must exist completely in order to free all the resources (files including itself, etc.) that it is using. How can I achieve this? How can I tell Windows, programatically, that the application must start again after existing completely?