Exemple #1
0
        public static void RegisterActiveX(string filename)
        {
            Directory.SetCurrentDirectory(Path.GetDirectoryName(filename));
            ExitedProcess process = ProcessRunner.RunProcess(
                new ProcessStartInfo {
                FileName        = "regsvr32.exe",
                Arguments       = "/s " + Path.GetFileName(filename),
                UseShellExecute = false,
                CreateNoWindow  = true
            }
                );

            if (!process.IsSuccessful)
            {
                throw new InstallException(string.Format("Failed to register ActiveX plugin: error code {0}\n\n{1}", process.ExitCode, process.Output));
            }
        }
        /// <summary>
        /// Action called on process Exit or Kill
        /// </summary>
        /// <param name="isKilled">Has process been killed</param>
        protected void ExitedOrKilledProcessAction(bool isKilled)
        {
            IsProcessRunning = false;
            ExitProcessCode  = CurrentBashProcess.ExitCode;

            if (isKilled)
            {
                ProcessState = BashProcessState.KilledManually;
                ExitedProcess?.Invoke(this, new BashProcessExitEventArgs(ProcessState, null));
            }
            else
            {
                if (ExitProcessCode == 0)
                {
                    ProcessState = BashProcessState.Exited;
                }
                else
                {
                    ProcessState = BashProcessState.ExitedWithError;
                }

                ExitedProcess?.Invoke(this, new BashProcessExitEventArgs(ProcessState, ExitProcessCode));
            }
        }