コード例 #1
0
        private void UninstallProgram(RegistryEntryGridRow program)
        {
            var pathEnd = program.UninstallString.IndexOf(".exe") + 4;

            if (ProgramUninstallPathHasParams(pathEnd, program))
            {
                ExecuteUninstallProcess(() => Process.Start(program.UninstallString));
            }
            else
            {
                var paramsIndex     = program.UninstallString.IndexOf(' ', pathEnd);
                var programLocation = program.UninstallString.Substring(0, paramsIndex);
                var programParams   = program.UninstallString.Substring(paramsIndex + 1);

                ExecuteUninstallProcess(() => Process.Start(programLocation, programParams));
            }
        }
コード例 #2
0
 private bool ProgramUninstallPathHasParams(int pathEnd, RegistryEntryGridRow program)
 {
     return(pathEnd == program.UninstallString.Length || pathEnd + 1 == program.UninstallString.Length);
 }