Пример #1
0
        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));
        }