Some software install can spawn a child process that never exits. We want to be able to ignore child processes that don't exit after installation is finished

This commit is contained in:
Duc
2025-05-07 09:38:11 -07:00
parent 738834be94
commit c9315968da
14 changed files with 1451 additions and 1561 deletions

View File

@@ -1,23 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Drawing;
using CommonLib.Windows.Forms;
using System.IO;
using System.Windows.Forms;
using CommonLib.IO;
using CommonLib.Misc;
using CommonLib.Windows.Forms;
namespace All_Purpose_Auto_Setup
{

View File

@@ -1,24 +1,14 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Drawing;
using CommonLib.Windows.Forms;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using CommonLib.IO;
using CommonLib.Misc;
using CommonLib.Windows.Forms;
namespace All_Purpose_Auto_Setup
{
@@ -249,7 +239,7 @@ namespace All_Purpose_Auto_Setup
}
else if (additionalFileMissing.Length > 0)
{
((frmSetupStatusDisplay)m_parentForm).displayMessageBox(MessageBoxCustom.PopUpMsgType.INFO, null, "File \"" + additionalFileMissing + "\" is missing. \n\nProceeding with running pre-build script to create necessary files." , "Info", -1);
((frmSetupStatusDisplay)m_parentForm).displayMessageBox(MessageBoxCustom.PopUpMsgType.INFO, null, "File \"" + additionalFileMissing + "\" is missing. \n\nProceeding with running pre-build script to create necessary files.", "Info", -1);
}
else
{
@@ -283,7 +273,7 @@ namespace All_Purpose_Auto_Setup
setupSuccessful = false;
}
if ( msg.Length > 0 )
if (msg.Length > 0)
UpdateStatusDisplayAndLogEvent(msg, msg, textPropList);
}
@@ -536,7 +526,7 @@ namespace All_Purpose_Auto_Setup
textProp.textFont = new Font(textProp.textFont, FontStyle.Bold);
textPropList.Add(textProp);
if (errMsg.Length > 0 )
if (errMsg.Length > 0)
msg = " - FAILED. " + errMsg;
else
msg = " - FAILED. " + additionalFileMissing + " not found.";

View File

@@ -146,12 +146,22 @@ step = INSTALL_SOFTWARE_PACKAGES,Install_Software
;
; ******************************************************************************************************************************
[Install_Software]
app5_name = Visual Studio 2022
app5_setup_argument = -p --norestart --noweb --add Microsoft.VisualStudio.Workload.ManagedDesktop;includeRecommended Microsoft.VisualStudio.Workload.NativeDesktop;includeRecommended Microsoft.VisualStudio.Component.VC.ATLMFC Microsoft.VisualStudio.Component.VC.CLI.Support Microsoft.VisualStudio.Workload.VisualStudioExtension;includeRecommended
app5_reg_path = VisualStudio.DTE.17.0
app5_reg_type = classes_root
app5_setup_file = D:\Windows_Stuff\Visual_Studio_2022.17.9.5\vs_setup.exe
app5_install_process_name = setup
;app5_name = Visual Studio 2022
;app5_setup_argument = -p --norestart --noweb --add Microsoft.VisualStudio.Workload.ManagedDesktop;includeRecommended Microsoft.VisualStudio.Workload.NativeDesktop;includeRecommended Microsoft.VisualStudio.Component.VC.ATLMFC Microsoft.VisualStudio.Component.VC.CLI.Support Microsoft.VisualStudio.Workload.VisualStudioExtension;includeRecommended
;app5_reg_path = VisualStudio.DTE.17.0
;app5_reg_type = classes_root
;app5_setup_file = D:\Windows_Stuff\Visual_Studio_2022.17.9.5\vs_setup.exe
;app5_install_process_name = setup
app6_name = TestStand 2019
app6_reg_display_name = NI TestStand (32-bit)
app6_reg_type = local_machine
app62_reg_value = 19
app62_reg_name = DisplayVersion
app62_reg_compare = gte
app6_setup_file = C:\Users\Duc\Desktop\TestStand_2019\Install.exe
app6_spawned_processes_to_ignore = nierserver
app6_reboot_computer_at_completion = true
; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL

View File

@@ -1,25 +1,13 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Drawing;
using CommonLib.Windows.Forms;
using CommonLib.Windows.Misc;
using CommonLib.IO;
using System.Linq;
using System.Management;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
using CommonLib.Misc;
using CommonLib.Windows.Misc;
namespace All_Purpose_Auto_Setup
{
@@ -265,7 +253,7 @@ namespace All_Purpose_Auto_Setup
setupSuccessful = NetworkManagement.SetNetworkAdapterIpAddress(networkAdapterConfiguration, networkAdapterIp, networkAdapterSubnetMask, ref errMsg);
indentation = Common.getIndentation(1);
msg = "\n" + indentation + "Setting IP=" + networkAdapterIp + " and subnet=" + networkAdapterSubnetMask + " for network adapter at PCI Location " + pciLocation;
msg = "\n" + indentation + "Setting IP=" + networkAdapterIp + " and subnet=" + networkAdapterSubnetMask + " for network adapter at PCI Location " + pciLocation;
if (setupSuccessful)
{
@@ -298,7 +286,7 @@ namespace All_Purpose_Auto_Setup
UpdateStatusDisplayAndLogEvent(msg2, msg2, textPropList2);
}
if (setupSuccessful && networkAdapterDefaultGateway.Length > 0 )
if (setupSuccessful && networkAdapterDefaultGateway.Length > 0)
{
setupSuccessful = NetworkManagement.SetNetworkAdapterDefaultGateway(networkAdapterConfiguration, networkAdapterDefaultGateway, ref errMsg);
@@ -540,7 +528,7 @@ namespace All_Purpose_Auto_Setup
string[] ips = iniKey.iniValue.Split(',');
ips[0] = ips[0].Trim();
if ( ips.Length > 1)
if (ips.Length > 1)
ips[1] = ips[1].Trim();
List<string> ipList = new List<string>(ips);

View File

@@ -1,24 +1,16 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Drawing;
using CommonLib.Windows.Forms;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
using CommonLib.IO;
using CommonLib.Misc;
using CommonLib.Windows.Forms;
namespace All_Purpose_Auto_Setup
{
@@ -194,8 +186,8 @@ namespace All_Purpose_Auto_Setup
{
Hardware.OpenCdDrive(drive.Name);
tempMsg = "Please insert a disc";
tempMsg = "Please insert a disc";
if (cdLabel.Length > 0)
tempMsg += " labeled \"" + cdLabel + "\"";
@@ -401,7 +393,7 @@ namespace All_Purpose_Auto_Setup
{
// since we are receiving everything that's being output to the standard output
// we're only interested in the response of the command, and not the command itself
if ( !Regex.IsMatch(e.Data, @"^[a-zA-Z]:[^>]+>.+", RegexOptions.IgnoreCase))
if (!Regex.IsMatch(e.Data, @"^[a-zA-Z]:[^>]+>.+", RegexOptions.IgnoreCase))
m_consoleAppStatusMessage = e.Data;
}
}
@@ -611,7 +603,7 @@ namespace All_Purpose_Auto_Setup
((frmSetupStatusDisplay)m_parentForm).displayMessageBox(MessageBoxCustom.PopUpMsgType.INFO, null, msg, "Info", -1);
m_parentForm.Invoke((MethodInvoker)(() =>
m_parentForm.Invoke((MethodInvoker)(() =>
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
@@ -786,10 +778,10 @@ namespace All_Purpose_Auto_Setup
// if the macro in the argument refers to another key the defines a path
if (matchedPathIndex >= 0 && !idToPath.ContainsKey(matches[i].Groups[0].Value))
{
if (PathManip.PathIsFile(entry.Value[matchedPathIndex].iniValue))
idToPath[matches[i].Groups[0].Value] = Path.GetDirectoryName(Path.GetFullPath(entry.Value[matchedPathIndex].iniValue));
else
idToPath[matches[i].Groups[0].Value] = Path.GetFullPath(entry.Value[matchedPathIndex].iniValue);
if (PathManip.PathIsFile(entry.Value[matchedPathIndex].iniValue))
idToPath[matches[i].Groups[0].Value] = Path.GetDirectoryName(Path.GetFullPath(entry.Value[matchedPathIndex].iniValue));
else
idToPath[matches[i].Groups[0].Value] = Path.GetFullPath(entry.Value[matchedPathIndex].iniValue);
}
// if the macro in the argument refers to the path defined by primary key app#_path
@@ -888,7 +880,7 @@ namespace All_Purpose_Auto_Setup
if (setupSuccessful)
{
if (idToPath.Count > 0)
{
{
// goes through each marco in the argument ini key and replace with actual paths
foreach (KeyValuePair<string, string> item in idToPath)
{
@@ -899,7 +891,7 @@ namespace All_Purpose_Auto_Setup
tempOneToManyDict[iniVal][matchedArgumentIndex] = iniVal2;
}
}
}
}
processedEntry = new KeyValuePair<ConfigFileManager.Ini_KeyValue<string>, List<ConfigFileManager.Ini_KeyValue<string>>>(iniVal, new List<ConfigFileManager.Ini_KeyValue<string>>(tempOneToManyDict[iniVal]));

View File

@@ -1,24 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Drawing;
using CommonLib.Windows.Forms;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using CommonLib.IO;
using CommonLib.Misc;
using CommonLib.Windows.Misc;
using CommonLib.Windows.Forms;
namespace All_Purpose_Auto_Setup
{
@@ -407,14 +394,14 @@ namespace All_Purpose_Auto_Setup
displayMsg = Regex.Replace(userPrompt["prompt_message"], @"\{newline\}", "\n");
if ( String.Equals(userPrompt["prompt_message_type"], MessageBoxCustom.PopUpMsgType.YESNO.ToString(), StringComparison.CurrentCultureIgnoreCase))
if (String.Equals(userPrompt["prompt_message_type"], MessageBoxCustom.PopUpMsgType.YESNO.ToString(), StringComparison.CurrentCultureIgnoreCase))
result = ((frmSetupStatusDisplay)m_parentForm).displayMessageBox(MessageBoxCustom.PopUpMsgType.YESNO, null, displayMsg, "Info", -1);
else if (String.Equals(userPrompt["prompt_message_type"], MessageBoxCustom.PopUpMsgType.OKCANCEL.ToString(), StringComparison.CurrentCultureIgnoreCase))
result = ((frmSetupStatusDisplay)m_parentForm).displayMessageBox(MessageBoxCustom.PopUpMsgType.OKCANCEL, null, displayMsg, "Info", -1);
else
result = ((frmSetupStatusDisplay)m_parentForm).displayMessageBox(MessageBoxCustom.PopUpMsgType.INFO, null, displayMsg, "Info", -1);
if ( Regex.IsMatch(result, @"(yes|ok)", RegexOptions.IgnoreCase))
if (Regex.IsMatch(result, @"(yes|ok)", RegexOptions.IgnoreCase))
{
msg += " - SUCCESS.";

File diff suppressed because it is too large Load Diff

View File

@@ -1,23 +1,12 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Drawing;
using CommonLib.Windows.Forms;
using CommonLib.IO;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
using CommonLib.Misc;
namespace All_Purpose_Auto_Setup
@@ -349,7 +338,7 @@ namespace All_Purpose_Auto_Setup
// First, handle the case where an exception was thrown.
if (e.Error != null)
{
}
else if (e.Cancelled) // user cancelled
{
@@ -433,7 +422,7 @@ namespace All_Purpose_Auto_Setup
Thread.Sleep(500);
}
}
}
void cmd_WindowFeature_DataReceived(object sender, DataReceivedEventArgs e)
{

View File

@@ -1,24 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Drawing;
using CommonLib.Windows.Forms;
using CommonLib.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using CommonLib.Misc;
using CommonLib.Windows.Misc;
using Microsoft.Win32;
namespace All_Purpose_Auto_Setup
{
@@ -149,9 +136,9 @@ namespace All_Purpose_Auto_Setup
if (String.Equals(registryAction, "delete", StringComparison.OrdinalIgnoreCase))
{
setupSuccessful = WindowsRegistry.DeleteRegistryValueName(registryPath, getRegistryHive(registryType), entry.Key, ref errMsg);
setupSuccessful = WindowsRegistry.DeleteRegistryValueName(registryPath, getRegistryHive(registryType), entry.Key, ref errMsg);
msg1 = "\n" + indentation + "Deleting value name " + entry.Key + " in " + registryPath;
msg1 = "\n" + indentation + "Deleting value name " + entry.Key + " in " + registryPath;
}
else // add to registry
{
@@ -207,7 +194,7 @@ namespace All_Purpose_Auto_Setup
}
}
if ( msg1.Length > 0 )
if (msg1.Length > 0)
{
// set font to default text and color
@@ -270,7 +257,7 @@ namespace All_Purpose_Auto_Setup
UpdateStatusDisplayAndLogEvent(msg1, msg1, textPropList1);
UpdateStatusDisplayAndLogEvent(msg2, msg2, textPropList2);
}
if (!setupSuccessful)
@@ -370,7 +357,7 @@ namespace All_Purpose_Auto_Setup
}
public void getRegistryInfo(List<ConfigFileManager.Ini_KeyValue<string>> iniKeys, ref string action,
ref string registryType, Dictionary<string,string> nameValuePairs)
ref string registryType, Dictionary<string, string> nameValuePairs)
{
Match regExMatch;
registryType = "";
@@ -448,9 +435,9 @@ namespace All_Purpose_Auto_Setup
RegistryHive regHive = RegistryHive.LocalMachine;
if (String.Equals(regType, "local_machine", StringComparison.OrdinalIgnoreCase))
regHive = RegistryHive.LocalMachine;
regHive = RegistryHive.LocalMachine;
else if (String.Equals(regType, "classes_root", StringComparison.OrdinalIgnoreCase))
regHive = RegistryHive.ClassesRoot;
regHive = RegistryHive.ClassesRoot;
else if (String.Equals(regType, "current_user", StringComparison.OrdinalIgnoreCase))
regHive = RegistryHive.CurrentUser;
else
@@ -535,7 +522,7 @@ namespace All_Purpose_Auto_Setup
regExMatch = Regex.Match(iniKey.iniValue, @"\[\s*name\s*:\s*(.*[^\s])\s*,\s*value\s*:\s*(.*[^\s])\s*,\s*type\s*:\s*(.*[a-zA-Z])\s*\]", RegexOptions.IgnoreCase);
// match multi value
if ( !regExMatch.Success )
if (!regExMatch.Success)
regExMatch = Regex.Match(iniKey.iniValue, @"\[\s*name\s*:\s*(.*[^\s])\s*,\s*:\s*value\s*:\s*(.*[^\s])\s*,\s*type\s*:\s*(.*[a-zA-Z])\s*\]", RegexOptions.IgnoreCase);
}

View File

@@ -1,23 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Drawing;
using CommonLib.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using CommonLib.IO;
using CommonLib.Misc;
using CommonLib.Windows.Forms;
using CommonLib.Windows.Misc;
namespace All_Purpose_Auto_Setup
@@ -154,7 +143,7 @@ namespace All_Purpose_Auto_Setup
statusGiven = true;
}
}
if (!statusGiven && File.Exists(shortcutPath))
{
msg2 = ((frmSetupStatusDisplay)m_parentForm).displayMessageBox(MessageBoxCustom.PopUpMsgType.YESNO, null, "Shortcut \"" + Path.GetFileName(shortcutPath) + "\" already exists.\n\nDo you wish to overwrite it?", "Warning!!!", -1);
@@ -276,7 +265,7 @@ namespace All_Purpose_Auto_Setup
public string getShortcutTargetPath(List<ConfigFileManager.Ini_KeyValue<string>> iniKeys)
{
string targetPath = "";
foreach (ConfigFileManager.Ini_KeyValue<string> iniKey in iniKeys)
{
if (Regex.IsMatch(iniKey.iniKeyName, @"shortcut\d+_target_path", RegexOptions.IgnoreCase))
@@ -292,7 +281,7 @@ namespace All_Purpose_Auto_Setup
public string getShortcutArguments(List<ConfigFileManager.Ini_KeyValue<string>> iniKeys)
{
string args = "";
foreach (ConfigFileManager.Ini_KeyValue<string> iniKey in iniKeys)
{
if (Regex.IsMatch(iniKey.iniKeyName, @"shortcut\d+_arguments", RegexOptions.IgnoreCase))

View File

@@ -1,15 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
using System.IO;
using System.Reflection;
using CommonLib.Windows.Forms;
namespace All_Purpose_Auto_Setup

View File

@@ -1,21 +1,13 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
using System.Linq;
using System.Reflection;
using CommonLib.Windows.Forms;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using CommonLib.IO;
using CommonLib.Misc;
using CommonLib.Windows.Forms;
using CommonLib.Windows.Misc;
namespace All_Purpose_Auto_Setup
@@ -164,9 +156,9 @@ namespace All_Purpose_Auto_Setup
if (args.Count() > 1)
{
pathAndNameOfConfigFile = args[1];
if (!PathManip.IsAbsolutePath(pathAndNameOfConfigFile))
pathAndNameOfConfigFile = Path.GetFullPath(Path.Combine(Application.StartupPath, pathAndNameOfConfigFile));
pathAndNameOfConfigFile = args[1];
if (!PathManip.IsAbsolutePath(pathAndNameOfConfigFile))
pathAndNameOfConfigFile = Path.GetFullPath(Path.Combine(Application.StartupPath, pathAndNameOfConfigFile));
}
else if (Properties.Settings.Default["ConfigFile"].ToString().Length > 0)
{

View File

@@ -1,25 +1,14 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Security.Principal;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using CommonLib.Windows.Forms;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
using CommonLib.IO;
using CommonLib.Misc;
using CommonLib.Windows.Forms;
using CommonLib.Windows.Misc;
namespace All_Purpose_Auto_Setup
@@ -90,7 +79,7 @@ namespace All_Purpose_Auto_Setup
// process the configuration file
configFileMgr = new ConfigFileManager(this, pathAndNameOfConfigFile);
pathAndNameOfSetupLog = Path.Combine(Application.StartupPath,pathAndNameOfSetupLog);
pathAndNameOfSetupLog = Path.Combine(Application.StartupPath, pathAndNameOfSetupLog);
pathAndNameOfSetupLog = FileManip.GenerateUniqueFileName(Path.GetDirectoryName(pathAndNameOfSetupLog),
Path.GetFileNameWithoutExtension(pathAndNameOfSetupLog), Path.GetExtension(pathAndNameOfSetupLog));
@@ -148,6 +137,7 @@ namespace All_Purpose_Auto_Setup
str = Regex.Replace(str, @"\n", "\r\n", RegexOptions.IgnoreCase);
swSetupLog.Write(str);
swSetupLog.Flush();
}
}
@@ -164,6 +154,7 @@ namespace All_Purpose_Auto_Setup
str = Regex.Replace(str, @"\n", "\r\n", RegexOptions.IgnoreCase);
swSetupLog.Write(str);
swSetupLog.Flush();
}
return FormControlsManipThreadSafe.getRichTextBoxLastLineIndex(statusRtxtbox);
@@ -177,6 +168,7 @@ namespace All_Purpose_Auto_Setup
str = Regex.Replace(str, @"\n", "\r\n", RegexOptions.IgnoreCase);
swSetupLog.Write(str);
swSetupLog.Flush();
}
}
@@ -327,7 +319,7 @@ namespace All_Purpose_Auto_Setup
currentSetupStep < (int)Properties.Settings.Default["CurrentSetupStep"])
continue;
if ( getActualSetupStep(entry[0], ref actualSetupstep) )
if (getActualSetupStep(entry[0], ref actualSetupstep))
{
setupSuccessful = setupStepCalls[actualSetupstep].Invoke(entry[1]);
@@ -542,7 +534,7 @@ namespace All_Purpose_Auto_Setup
indentation = Common.getIndentation(1);
msg = "\n" + indentation + "- FAILED. "
+ "\n" + indentation + "File: " + ConfigFileManager.ms_configGeneralInfo.pathAndNameOfConfigFile
+ "\n" + indentation + "Error Description: The section " + SectionName.Setup_Step_Manager + " doesn't exist or have no entries.";
+ "\n" + indentation + "Error Description: The section " + SectionName.Setup_Step_Manager + " doesn't exist or have no entries.";
Common.formatConfigIniFailureMessage(msg, textPropList);
@@ -645,7 +637,7 @@ namespace All_Purpose_Auto_Setup
List<CommonLib.Windows.Forms.TextFormat.TextFontAndColor> textPropList = new List<CommonLib.Windows.Forms.TextFormat.TextFontAndColor>();
string msg;
if (ConfigFileManager.ms_configGeneralInfo.programName.iniValue.Length > 0)
{
// set font to default text and color

View File

@@ -1,15 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using CommonLib.Windows.Forms;
using CommonLib.Windows.Forms;
namespace All_Purpose_Auto_Setup
{