I feel the easiest way to do this is would be in a .NET language. That's what my launcher was made in. Here are your requirements.
-Need a host to store the version file and the updated files of your game
-Rather than having a shortcut to your game, have it linked to your launcher
-Launcher compares version file stored locally, compared to one stored remotely (the local one can be in the registry, or just a file in the AppData folder, up to you)
-If version is outdated, then launcher simply downloads new files.
Now, if you're asking for code, this is what I recommend googling.
"how to download files with *insert language here*"
"how to save files in appdata/registry with *insert language here*"
"how to read/write files with *insert language here*"
An updater is actually really simple to create. A lot of it is just Streams. Streams for files and remote files, transfering/reading/writing bytes from these streams. If you know how to work with I/O then you're pretty much good to go. It's just a matter of getting the code done yourself. I'll see if I can't find my old, old updater from a personal project awhile ago and I'll share the code with you.