"c:\program files\AutoDialogs\ad.exe" "c:\some folder\ad.dat"
The reason to write updates to the config file at the time of the change and not at the program exit is because it would overwrite the updates made to the file by the another PC.
PC A (server) makes a change and this is written to the config file in the common folder.
PC B (laptop) exits and writes current config on exit. (overwriting changes made by PC A)
PC B restarts with old config file.
PC A makes another change or shuts down. (new config restored)
PC B shuts down restoring old file.
(lets hope the windows server doesnt crash)
It would be great if the software could re-read the config file on new windows or at least not rewrite changes at the end. This way the user could restart to get the latest config. Another alternative would be to give a menu option to reload or create a simple hash of the current config in memory and the the file and if a change is detected ask the user if they want to reload. To me syncing would be out of scope for the program.
I think more and more of your users would appreciate any advances you could make in this area. While I'm in IT and would be an early adopter I see more and more general users taking advantage of cloud computing services like dropbox.
Dropbox also works great for keepass and keepass even syncs changes made by multiple pc's