void unprovisionComServer()
        {
            RegistryKey AppIDKey = VBoxComUtils.GetVirtualBoxAppIDKey();

            AppIDKey.DeleteValue("LoadUserSettings", false);
            _log.TraceEvent(TraceEventType.Verbose, (int)Logging.ComInterfaceErrorIds.UnprovisionedComServer, "VirtualBox COM-Server unprovisioned via registry.");
        }
        /// <summary>
        /// Writes necessary registry keys, to get correct behaviour of COM Server, if it is called from a Windows Service.
        /// </summary>
        void provisionComServer()
        {
            RegistryKey AppIDKey = VBoxComUtils.GetVirtualBoxAppIDKey();

            AppIDKey.SetValue("LoadUserSettings", 0x0001, RegistryValueKind.DWord);
            AppIDKey.Close();
            _log.TraceEvent(TraceEventType.Verbose, (int)Logging.ComInterfaceErrorIds.ProvisionedComServer, "VirtualBox COM-Server provisioned via registry.");
        }
        void initVirtualBox()
        {
            provisionComServer();

            _virtualBox = Activator.CreateInstance(Type.GetTypeFromProgID(VBoxComUtils.GetVirtualBoxProgID()));

            //Com-Server is now running, we can revert changes in registry
            unprovisionComServer();
        }