예제 #1
0
 /// <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);
     }
 }
예제 #2
0
        /// <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);
            }
        }
예제 #3
0
        /// <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);
            }
        }