public static ComponentTask SetRegistryRunCommand( bool runOnce, RegistryUtil.StartupRegistryHives startupRegistryHive, string registryKeyValueName, CLICommand command, StringComparison validationStringComparison ) { /************************************************ * Task Type: Setup * Task Prerequisite: None. * Task Description: Create a Run or RunOnce registry key * at the HKLM or HKCU registry hive for * a cmd /c command. * Task Validation: No cleanup required. ************************************************/ Func <bool> prequisiteFunc = null; Action setupAction = () => RegistryUtil.SetRunCommand( runOnce, startupRegistryHive, registryKeyValueName, command); Func <bool> setupActionValidation = () => RegistryUtil.RegistryKeyValueDataExists( RegistryUtil.GetStartupRunKey(runOnce, startupRegistryHive), registryKeyValueName, SystemPathConstants.CmdPathCommand + " " + command.ToString(), validationStringComparison); SetupTask setupTask = new SetupTask(prequisiteFunc, setupAction, setupActionValidation, true); /************************************************/ /************************************************ * Task Type: Cleanup * Task Description: No cleanup required. ************************************************/ Action cleanupAction = null; Func <bool> cleanupActionValidation = null; CleanupTask cleanupTask = new CleanupTask(cleanupAction, cleanupActionValidation); /************************************************/ return(new ComponentTask(setupTask, cleanupTask)); }