I have written a C# shareware application and I am due to release the next version very soon, but I have just discovered it has an incompatibility with Windows Vista. The problem stems from the fact that the program consists of two parts: an executable and a Windows Service. The two parts need to share a registry setting. The Windows Service initialises when the machine starts up, before any user logs on. At present the program writes a setting under the HKEY_LOCAL_MACHINE key, and this can be read by the Windows Service the next time the machine boots. But it now transpires that this is key is not being read correctly by Vista users, because in fact the program only thinks it is writing to HKEY_LOCAL_MACHINE - in fact the value is stored in a virtual registry key under CURRENT_USER. Is there any way I can write to the registry from my program and have the key read by the Windows Service at start up, before there is a current user? It is really imperative that the user NOT have to go into Windows settings or configure any permissions, because many of the users of this program have almost no computer literacy.