diff --git a/IOB-MAN/IOBManPanel.cs b/IOB-MAN/IOBManPanel.cs index 40283e65..19491696 100644 --- a/IOB-MAN/IOBManPanel.cs +++ b/IOB-MAN/IOBManPanel.cs @@ -22,6 +22,14 @@ namespace IOB_MAN #endregion + /// + /// Totale processi avviati + /// + protected int numProcAvviati; + /// + /// Totale processi running + /// + protected int numProcRunning; /// /// Counter per verifica watchdog dei processi da riattivare... /// @@ -104,7 +112,20 @@ namespace IOB_MAN private void updateStatus() { // aggiorno labels - tsslNumProc.Text = $"Avviati {ElencoIOB.Count} processi child"; + tsslNumProc.Text = $"Configurati {ArgsList.Count} processi | Avviati: {numProcAvviati} | Attivi: {numProcRunning}"; + // colore da num proc... + if (numProcRunning == ArgsList.Count) + { + tsslNumProc.ForeColor = System.Drawing.Color.Green; + } + else if (numProcAvviati < ArgsList.Count) + { + tsslNumProc.ForeColor = System.Drawing.Color.DarkRed; + } + else + { + tsslNumProc.ForeColor = System.Drawing.Color.OrangeRed; + } } /// /// Chiama apertura + update status... @@ -149,7 +170,8 @@ namespace IOB_MAN utils.lgInfo($"Avviato child process per {item} | pid: {p.Id}"); } - + numProcAvviati = ArgsList.Count; + numProcRunning = numProcAvviati; #if false string path = Application.StartupPath; @@ -213,11 +235,12 @@ namespace IOB_MAN { // errore era già chiuso.. } - // rimuovo da datasource - ElencoIOB.RemoveAt(riga.Index); + // indico NON running su datasource + ((iobAdapt)ElencoIOB[riga.Index]).isRunning = false; } } } + updateStatus(); } /// /// Cerca nell'elenco il processo corrente @@ -306,7 +329,7 @@ namespace IOB_MAN { chekMult = utils.CRI("chekMult"); checkRunningchild(); - showUpdate(); + updateStatus(); } } @@ -327,6 +350,8 @@ namespace IOB_MAN List item2rem = new List(); bool needRem = false; + numProcRunning = numProcAvviati; + // leggo 1 sola volta TUTTO elenco processi... Process[] processList = Process.GetProcesses(); @@ -346,6 +371,7 @@ namespace IOB_MAN { item2rem.Add(item); item.isRunning = false; + numProcRunning--; } else { @@ -361,11 +387,7 @@ namespace IOB_MAN #endif // aggiorno datagrid! dgvManagedItems.Invalidate(); - } - - private void showUpdate() - { - // aggiorna visualizzazioni... + updateStatus(); } private void IOBManPanel_FormClosing(object sender, FormClosingEventArgs e) @@ -385,11 +407,25 @@ namespace IOB_MAN foreach (var item in item2rem) { - Process p = Process.GetProcessById(item.pID); - p.CloseMainWindow(); - ElencoIOB.Remove(item); + if (item.isRunning) + { + try + { + Process p = Process.GetProcessById(item.pID); + p.CloseMainWindow(); + ElencoIOB.Remove(item); + } + catch + { } + } } + // resetto elenco! + ElencoIOB.Clear(); + numProcAvviati = 0; + numProcRunning = 0; + // update! + updateStatus(); } private void dgvManagedItems_SelectionChanged(object sender, EventArgs e) @@ -413,6 +449,7 @@ namespace IOB_MAN private void button1_Click(object sender, EventArgs e) { closeAllChild(); + updateStatus(); } private void button2_Click(object sender, EventArgs e) @@ -420,6 +457,7 @@ namespace IOB_MAN // chiude tutto closeAllChild(); apriChild(); + updateStatus(); } private void lblNumChild_Click(object sender, EventArgs e) @@ -468,16 +506,20 @@ namespace IOB_MAN { foreach (iobAdapt item in ElencoIOB.List) { - try + if (item.isRunning) { - Process p = Process.GetProcessById(item.pID); - // cerco e chiudo quelli che mi interessano... - var windowsHandle = p.MainWindowHandle; - ShowWindowAsync(windowsHandle, SW_SHOWMINIMIZED); - } - catch - { - // errore era già chiuso.. + try + { + Process p = Process.GetProcessById(item.pID); + // cerco e chiudo quelli che mi interessano... + var windowsHandle = p.MainWindowHandle; + ShowWindowAsync(windowsHandle, SW_SHOWMINIMIZED); + } + catch (Exception exc) + { + // errore era già chiuso.. + utils.lgError($"Errore in HIDE windows:{Environment.NewLine}{exc}"); + } } } } @@ -486,16 +528,20 @@ namespace IOB_MAN { foreach (iobAdapt item in ElencoIOB.List) { - try + if (item.isRunning) { - Process p = Process.GetProcessById(item.pID); - // cerco e chiudo quelli che mi interessano... - var windowsHandle = p.MainWindowHandle; - ShowWindowAsync(windowsHandle, SW_SHOWNORMAL); - } - catch - { - // errore era già chiuso.. + try + { + Process p = Process.GetProcessById(item.pID); + // cerco e chiudo quelli che mi interessano... + var windowsHandle = p.MainWindowHandle; + ShowWindowAsync(windowsHandle, SW_SHOWNORMAL); + } + catch (Exception exc) + { + // errore era già chiuso.. + utils.lgError($"Errore in SHOW windows:{Environment.NewLine}{exc}"); + } } } } diff --git a/Jenkinsfile b/Jenkinsfile index 3df230c4..f8ae983d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,7 +16,7 @@ pipeline { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=613']) { + withEnv(['NEXT_BUILD_NUMBER=615']) { // env.versionNumber = VersionNumber(versionNumberString : '3.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '3.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'MAPO-IOB-WIN'