コード例 #1
0
ファイル: MineContext.cs プロジェクト: wuzongwen/NtMiner
        private void ContinueCreateProcess()
        {
            Thread.Sleep(1000);
            if (this != NTMinerContext.Instance.LockedMineContext)
            {
                NTMinerConsole.UserWarn("结束开始挖矿");
                return;
            }

            // 执行文件书写器
            this.ExecuteFileWriters();

            // 分离命令名和参数
            GetCmdNameAndArguments(out string kernelExeFileFullName, out string arguments);
            // 这是不应该发生的,如果发生很可能是填写命令的时候拼写错误了
            if (!File.Exists(kernelExeFileFullName))
            {
                NTMinerConsole.UserError(kernelExeFileFullName + "文件不存在,可能是被杀软删除导致,请退出杀毒软件重试或者QQ群联系小编,解释:大部分挖矿内核会报毒,不是开源矿工的问题也不是杀软的问题,也不是挖矿内核的问题,是挖矿这件事情的问题,可能是挖矿符合了病毒的定义。");
            }
            if (this.KernelProcessType == KernelProcessType.Logfile)
            {
                arguments = arguments.Replace(NTKeyword.LogFileParameterName, this.LogFileFullName);
            }
            NTMinerConsole.UserOk($"\"{kernelExeFileFullName}\" {arguments}");
            NTMinerConsole.UserInfo($"有请内核上场");
            if (this != NTMinerContext.Instance.LockedMineContext)
            {
                NTMinerConsole.UserWarn("结束开始挖矿");
                return;
            }
            NTMinerConsole.InitOnece(isForce: true, initHide: !NTMinerContext.IsUiVisible);
            switch (this.KernelProcessType)
            {
            case KernelProcessType.Logfile:
                CreateLogfileProcess(kernelExeFileFullName, arguments);
                break;

            case KernelProcessType.Pip:
                CreatePipProcess(kernelExeFileFullName, arguments);
                break;

            default:
                throw new InvalidProgramException();
            }
            this.ProcessCreatedOn = DateTime.Now;
            KernelProcessDaemon();
            VirtualRoot.RaiseEvent(new MineStartedEvent(this));
        }