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:
@@ -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
|
||||
{
|
||||
|
||||
@@ -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.";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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]));
|
||||
|
||||
@@ -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
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user