diff --git a/Tools/HashingCmdStart/Program.cs b/Tools/HashingCmdStart/Program.cs
index f3b287ab1d002769cb532880115205f80372126c..d6ddc78a1efbea4d4ed32888a80c03ed58a6991c 100644
--- a/Tools/HashingCmdStart/Program.cs
+++ b/Tools/HashingCmdStart/Program.cs
@@ -2,6 +2,9 @@
 {
 	class Program
 	{
-		static void Main(string[] args) => StarterHelper.StartVECTO(args);
+		static void Main(string[] args)
+		{
+			StarterHelper.StartVECTO(args, true);
+        } 
 	}
 }
\ No newline at end of file
diff --git a/Tools/HashingToolStart/Program.cs b/Tools/HashingToolStart/Program.cs
index 6d55a719f74068db46301e4485e52d527b6ce2ba..212d779550bdfd8798482a1a49acfc37588ede55 100644
--- a/Tools/HashingToolStart/Program.cs
+++ b/Tools/HashingToolStart/Program.cs
@@ -9,7 +9,7 @@ namespace TUGraz.VECTO
 		{
 			try {
 				// mk20220707: hashing tool currently only works under net45, therefore we hardcoded the version
-				StarterHelper.StartVECTO(new[]{"net45"});
+				StarterHelper.StartVECTO(args);
 			} catch (Exception e) {
 				MessageBox.Show(e.Message);
 			}
diff --git a/Tools/VECTOConsoleStart/Program.cs b/Tools/VECTOConsoleStart/Program.cs
index f5dbc4cdaa2e8621dcbd94670678b3b7cd11e6d2..2c3e89e56651c08449cab191f42d63d4d9a5e9e3 100644
--- a/Tools/VECTOConsoleStart/Program.cs
+++ b/Tools/VECTOConsoleStart/Program.cs
@@ -4,6 +4,9 @@ namespace TUGraz.VECTO
 {
 	class Program
 	{
-		static void Main(string[] args) => StarterHelper.StartVECTO(args);
+		static void Main(string[] args)
+		{
+			StarterHelper.StartVECTO(args, true);
+		}
 	}
 }
diff --git a/Tools/VECTOStart/StarterHelper.cs b/Tools/VECTOStart/StarterHelper.cs
index 40e4bab5374630491362afb3783fe97be601ce86..0aec4549e9c6f905e38637b7144c6633e8b67c17 100644
--- a/Tools/VECTOStart/StarterHelper.cs
+++ b/Tools/VECTOStart/StarterHelper.cs
@@ -3,30 +3,53 @@ using System;
 using System.Collections;
 using System.Diagnostics;
 using System.IO;
+using System.Linq;
 using System.Reflection;
 
 namespace TUGraz.VECTO
 {
 	class StarterHelper
 	{
-		public static void StartVECTO(string[] args, params string[] validVersions)
+		public static void StartVECTO(string[] cmdArguments, params string[] validVersions)
+		{
+			StartVECTO(cmdArguments, false, validVersions);
+		}
+
+        public static void StartVECTO(string[] cmdArguments, bool consoleApp, params string[] validVersions)
 		{
 			var path = "No path found.";
 			string version = "No version found.";
 			if (validVersions is null || validVersions.Length == 0) {
 				validVersions = new[] { "net45", "net48", "net60" };
 			}
+
+			//var versionArgument = cmdArguments.FirstOrDefault(arg => arg.StartsWith("net"));
 			try {
-				if (args.Length > 0) {
-					version = args[0].ToLower();
-				} else {
-					version = GetHighestNETVersion();
-				}
+				version = GetHighestNETVersion();
+				
 
 				path = $"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe";
-				Process.Start(new ProcessStartInfo(path) {
-					WorkingDirectory = Directory.GetCurrentDirectory()
-				});
+
+				string argumentsString = "";
+				if (cmdArguments.Length > 0) {
+					foreach (var cmdArgument in cmdArguments) {
+						argumentsString += "\"" +  cmdArgument + "\" ";
+					}
+				}
+
+				var processInfo = new ProcessStartInfo(path) {
+					WorkingDirectory = Directory.GetCurrentDirectory(),
+					Arguments = argumentsString,
+				};
+				
+
+				if (consoleApp) {
+					processInfo.UseShellExecute = consoleApp ? false : processInfo.UseShellExecute;
+                    Process.Start(processInfo)?.WaitForExit();
+                } else {
+					Process.Start(processInfo);
+				}
+				
 				ValidateVersion(version, validVersions);
 			} catch (Exception e) {
 				var message = $"Error during starting VECTO.\nDetected .NET version: {version}\nTried to open path: {path}\n{e.Message}";