/// <summary> /// プロジェクトを実行する /// </summary> /// <param name="projId"></param> internal void StartProject(string projId, ExecDataType type, MacroStartType startType) { try { _autoMode = true; ProjectModel model = LoadProjectForm.GetProject(projId, type); StartProject(model, startType); } catch (Exception ex) { throw Program.ThrowException(ex); } }
/// <summary> /// プロジェクト修正画面を起動する /// mode 0:プロジェクト修正 1:モジュール修正 /// </summary> public static void ShowEditProject(BaseForm parentForm, int mode, MacroStartType startType) { try { LoadProjectForm form = new LoadProjectForm(); switch (mode) { case 0: form.Init(0); break; case 1: form.Init(LoadProjectMode.モジュール読込_削除); break; } form.ShowDialog(); if (form.LoadResult != DialogResult.OK) { return; } ProcessEditForm procForm = new ProcessEditForm(); switch (mode) { case 0: procForm.Init(ProcessEditFormViewMode.プロジェクト修正, form.ProjectModel); break; case 1: procForm.Init(ProcessEditFormViewMode.モジュール修正, form.ProjectModel); break; } procForm.ShowDialog(parentForm); parentForm.Show(); ShowEditProject(parentForm, mode, startType); } catch (Exception ex) { throw Program.ThrowException(ex); } }
/// <summary> /// モジュールを開始する /// </summary> /// <param name="projectModel"></param> private void StartProject(ProjectModel projectModel, MacroStartType macroStartType) { try { List <string> errorList = projectModel.CheckMacroInput(); if (errorList.Count > 0) { if (errorList.Count > 0) { string msg = ""; foreach (var m in errorList) { if (string.IsNullOrEmpty(msg)) { msg = m; } else { msg += "\r\n" + m; } this.ShowErrorDialog(StringValue.PROCESS_NAME + "登録エラー", msg); } return; } } if (!_autoMode) { Hide(); } if (_keyboardHook != null) { _keyboardHook.KeyboardHooked -= KeyboardHook_KeyboardHooked; _keyboardHook.Dispose(); } _keyboardHook = new KeyboardHook(); _keyboardHook.KeyboardHooked += KeyboardHook_KeyboardHooked; _execThread = new Thread(new ThreadStart(() => { _macroExecutor = new MacroExecutor(projectModel, macroStartType); _macroExecutor.OnLogEvent = SetLogText; LogFilePath = Program.EXEC_LOG_PATH; if (!Directory.Exists(LogFilePath)) { Directory.CreateDirectory(LogFilePath); } LogFilePath += @"\" + DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + FileUtil.GetInvalidEscapeFileName(projectModel.Name, " ") + ".log"; _macroExecutor.Run(true); if (!_autoMode) { Invoke(new MethodInvoker(() => { _keyboardHook.KeyboardHooked -= KeyboardHook_KeyboardHooked; _keyboardHook.Dispose(); Show(); })); } })); _execThread.Start(); } catch (Exception ex) { throw Program.ThrowException(ex); } }