Пример #1
0
 private void error(string msg, Application.Settings.OpMode opMode, Application.Settings.ErrorReporting opModeRunErrorReporting)
 {
     if ((opMode == Settings.OpMode.gui) || (opModeRunErrorReporting == Settings.ErrorReporting.MsgBox))
     {
         Forms.MessageBox.Error(msg);
     }
 }
Пример #2
0
        public Job Get(int id, Application.Settings.OpMode opMode, Application.Settings.ErrorReporting opModeRunErrorReporting)
        {
            Job[] jobs = Get(opMode, opModeRunErrorReporting);

            foreach (Job j in jobs)
            {
                if (j.ID == id) return j;
            }

            #warning TODO multi language or better a custm exception and text in the form
            throw new Exception("Job not found");
        }
Пример #3
0
        public Job[] Get(Application.Settings.OpMode opMode, Application.Settings.ErrorReporting opModeRunErrorReporting)
        {
            string[] sectionNames = this.GetSectionNames();
            int[] sectionNamesInt = this.GetSectionNamesInt();

            List<Job> jobs = new List<Job>(0);

            for (int i = 0; i < sectionNamesInt.Length; ++i)
            {
                if (sectionNamesInt[i] < Job.IDstart) this.error(Properties.Strings.nsApplication_JobsFile_Get_ErrorInvalidSection + " \"" + sectionNames[i] + "\"", opMode, opModeRunErrorReporting);
                else
                {
                    try
                    {
                        Job job = new Job();
                        job.ID = sectionNamesInt[i];

                        string[] tmp;

                        job.ProcessName = iniFile.Get(sectionNames[i], Key_ProcessName, true, Default_ProcessName);
                        job.Enabled = Convert.ToBoolean(iniFile.Get(sectionNames[i], Key_Enabled, true, Default_Enabled));

                        tmp = iniFile.Get(sectionNames[i], Key_Position, true, Default_Position).Split(';');
                        job.Position = new System.Drawing.Point(System.Convert.ToInt32(tmp[0]), System.Convert.ToInt32(tmp[1]));

                        tmp = iniFile.Get(sectionNames[i], Key_Size, true, Default_Size).Split(';');
                        job.Size = new System.Drawing.Size(System.Convert.ToInt32(tmp[0]), System.Convert.ToInt32(tmp[1]));

                        job.ZPosition = Middleware.Util.Misc.ParseEnum<Job.WindowZPosition>(iniFile.Get(sectionNames[i], Key_WindowZPosition, true, Default_WindowZPosition));
                        job.NoSize = Convert.ToBoolean(iniFile.Get(sectionNames[i], Key_NoSize, true, Default_NoSize));
                        job.NoMove = Convert.ToBoolean(iniFile.Get(sectionNames[i], Key_NoMove, true, Default_NoMove));
                        job.NoZOrder = Convert.ToBoolean(iniFile.Get(sectionNames[i], Key_NoZOrder, true, Default_NoZOrder));

                        jobs.Add(job);
                    }
                    catch
                    {
                        this.error(Properties.Strings.nsApplication_JobsFile_Get_ErrorParse + " \"" + sectionNames[i] + "\"", opMode, opModeRunErrorReporting);
                    }
                }
            }

            return jobs.ToArray();
        }
Пример #4
0
        public static void Run(Job[] jobs, Application.Settings.OpMode opMode, Application.Settings.ErrorReporting opModeRunErrorReporting, IntPtr thisAppHwnd)
        {
            try
            {
                System.Diagnostics.Process[] procList = System.Diagnostics.Process.GetProcesses();
                List<string> notFoundProcesses = new List<string>(0);

                for (int i = 0; i < jobs.Length; ++i)
                {
                    if (jobs[i].Enabled && (jobs[i].ID >= 0))
                    {
                        int procIndex = -1;

                        for (int pi = 0; pi < procList.Length; ++pi)
                        {
                            if (jobs[i].ProcessName == procList[pi].ProcessName)
                            {
                                procIndex = pi;
                                pi = procList.Length;
                            }
                        }

                        if (procIndex == -1)
                        {
                            notFoundProcesses.Add(jobs[i].ProcessName);
                        }
                        else
                        {
                            int insertAfter;
                            int flags = 0;

                            switch (jobs[i].ZPosition)
                            {
                                case WindowZPosition.TopMost:
                                    insertAfter = HWND_TOPMOST;
                                    break;

                                case WindowZPosition.Top:
                                    insertAfter = HWND_TOP;
                                    break;

                                case WindowZPosition.Bottom:
                                    insertAfter = HWND_BOTTOM;
                                    break;

                                case WindowZPosition.NoTopMost:
                                default:
                                    insertAfter = HWND_NOTOPMOST;
                                    break;
                            }

                            if (jobs[i].NoSize) flags |= SWP_NOSIZE;
                            if (jobs[i].NoMove) flags |= SWP_NOMOVE;
                            if (jobs[i].NoZOrder) flags |= SWP_NOZORDER;

                            SetWindowPos(
                                procList[procIndex].MainWindowHandle,
                                insertAfter,
                                jobs[i].Position.X,
                                jobs[i].Position.Y,
                                jobs[i].Size.Width,
                                jobs[i].Size.Height,
                                flags);
                        }
                    }
                }

                if (notFoundProcesses.Count > 0)
                {
                    string tmpStr = String.Empty;
                    for (int i = 0; i < notFoundProcesses.Count; ++i) tmpStr += "\n" + notFoundProcesses[i];
                    warning(Properties.Strings.nsApplication_Job_Run_Warning_ProcNotFound + tmpStr, opMode, opModeRunErrorReporting);
                }

                if ((opMode == Settings.OpMode.gui) && (thisAppHwnd != IntPtr.Zero)) SetWindowPos(thisAppHwnd, HWND_TOP, -1, -1, -1, -1, SWP_NOSIZE | SWP_NOMOVE);
            }
            catch (Exception ex)
            {
                Forms.MessageBox.Error(Properties.Strings.gFatalError + "\n" + ex.Message);
            }
        }
Пример #5
0
 public static void Run(Job[] jobs, Application.Settings.OpMode opMode, Application.Settings.ErrorReporting opModeRunErrorReporting)
 {
     Run(jobs, opMode, opModeRunErrorReporting, IntPtr.Zero);
 }
Пример #6
0
 public static void Set(Application.Settings.ErrorReporting value, bool preventSaveFile)
 {
     IniFile.Set(SectionName, KeyName, value.ToString(), preventSaveFile, true);
 }
Пример #7
0
 public static void Set(Application.Settings.ErrorReporting value)
 {
     Set(value, false);
 }