I'm pretty sure I can come up with some code to ping the server and look for a new file and download it but I'm not sure about how I'd go about replacing the current program without user intervention, especially while it is running.
This is how I would do it:
1. Without user interventiona) Create an updater application that runs on Windows startup on the client computers
b) Once it is running, it pings the server looking for a new file
c) If one is found, it downloads & overwrites the old file
The problem here is what happens when the user starts the user application before the update is completed? You'll have to add code to the user application that tests if an update is in progress & blocks the launch of the user application until the upgrade is finished.
2. With user interventiona) On the client computers, check for updates to the application when the users start it or at specified intervals
b) If an upgrade exists, alert the user & ask if he wants to upgrade immediately
c) If the user clicked YES, close the program
d) Run the updater that downloads the upgrade, overwrites the old version of the application & restarts the application
I personally would hate that a program upgrades itself without my approval hence I would prefer option 2. But we all have our personal preferences.