public static async Task Run(string[] args) { v = AssemblyExtras.GetCallingAssemblyInfo(); var n = v.GetAppString(); Console.Title = n; hWnd = FindWindow(null, n); //put your console window caption here ShowWindow(hWnd, (int)Controller.Operation.Hide); if (args.Length < 2 || args.Length > 4 || (args.Length == 1 && args[0].Equals("/?"))) { printInstructions(true); await Licensing.UpdateConsole(HelpString, OtherText); KeyboardAndClose(); } else { int num = 0; String path = ""; var op = Operation.None; bool quote = false; foreach (var s in args) { if (num == 0) { path = s; var count = path.Count(ss => ss == '\"'); if (count == 1) { quote = true; } } else { if (quote) { path += s; if (path.Contains("\"")) { quote = false; } continue; } var sl = s.ToLower(); switch (sl) { case "/min": op = Operation.Min; break; case "/max": op = Operation.Max; break; case "/normal": op = Operation.Normal; break; case "/close": op = Operation.Close; break; } } num++; } if (path.Length == 0) { printErrorMessage("No Path Supplied"); } if (op == Operation.None) { printErrorMessage("Provide either min or max flag"); } //get file to run //String sss = "start " + '"' + path + '"'; String sss = " " + path; var proc = ExecuteCommandSync(sss); bool performed = false; const int maxtimeouts = 10000; int timeout = 0; const int timeoutinterval = 1000; //Thread.Sleep(4000); while (performed == false) { if (op == Operation.Close) { CloseWindow(proc.MainWindowHandle); performed = true; continue; } //min var a = ShowWindow(proc.MainWindowHandle, (int)Operation.Min); // Console.WriteLine("a="+a.ToString()); //max var b = ShowWindow(proc.MainWindowHandle, (int)Operation.Max); //Console.WriteLine("b=" + b.ToString()); //then perform user sizing var c = ShowWindow(proc.MainWindowHandle, (int)op); //Console.WriteLine("c=" + c.ToString()); if (c) { performed = true; } Thread.Sleep(timeoutinterval); timeout += timeoutinterval; if (timeout >= maxtimeouts) { return; } } } }
public static async Task Run(string[] args) { v = AssemblyExtras.GetEntryAssemblyInfo(); var n = v.GetAppString(); Console.Title = n; bool error = false; //parse args var packagename = ""; var filetype = ""; var version = ""; var startpath = ""; try { for (int ai = 0; ai < args.Length; ai += 2) { var index = args[ai]; var value = args[ai + 1]; if (index == "-n") { packagename = value; } else if (index == "-t") { filetype = "*." + value; } else if (index == "-v") { version = value; } else if (index == "-p") { startpath = value; } } } catch (Exception e) { error = true; } if (string.IsNullOrEmpty(version)) { version = null; } if (string.IsNullOrEmpty(filetype)) { filetype = "*.csproj"; } else { if (filetype.StartsWith("*.") == false) { filetype = "*." + filetype; } } if (string.IsNullOrEmpty(packagename)) { error = true; } if (string.IsNullOrEmpty(startpath)) { startpath = null; } System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); string aversion = fvi.FileVersion; if (args.Length == 0 || error) { Console.WriteLine("\r\nNugetPackageUpdater V" + aversion + "\n"); Console.WriteLine("Args: NugetPackageUpdater.exe"); Console.WriteLine("-n PackageName (eg Antlr)"); Console.WriteLine("[-t FileType (default: csproj)]"); Console.WriteLine("[-v Version (default: newest from nuget)]"); Console.WriteLine("[-p Start Path (default: current directory)]"); if (await Licensing.IsUpdateConsoleRequired(HelpString, OtherText) == false) { KeyboardAndClose(); } } Console.WriteLine("\r\nNugetPackageUpdater V" + aversion + "\n"); try { NugetRepos = NugetHelpers.GetLocalNugetRepos(); ProjectFileChanges(filetype, packagename, version, startpath); PackagesChanges(packagename, version, startpath); } catch (Exception ex) { l.Error(ex, "Error occured:" + ex); } }