Hi,
my program has now the autoupdate feature. It works in this manner. When the application starts it contacts the remote server, downloads the last release xml file and check for updates; if yes, it starts an external program (in linux: system("updater");) which asks if download the update and, after downloading, it closes the main program (in linux: system("killall mainapp");), installs the new files and restarts the main program (in linux: system("mainapp");) and closes itself.

1st question: is all this method ok? In linux it works but I don't know if there is a better way.

2nd question: how accomplish this in windows? how kill a running program and restart it?

Thanks