using System; using System.IO; using TBF; namespace ToSecondMonitor { class Program { static LocalSettings ls; static void Main(string[] args) { if (!Directory.Exists(TBF.Program.ConfigDir)) return; Environment.CurrentDirectory = TBF.Program.ConfigDir; ls = LocalSettings.Load(TBF.Program.LocalSettingsFileName); if (ls == null || ls.TestBenches == null) { /// Loading local seetings from regular config file failed. Use the backup ls = LocalSettings.Load(TBF.Program.LocalSettingsBackupName); if (ls == null || ls.TestBenches == null) { /// Neither config.xml, nor config.backup.xml could be loaded Console.WriteLine(string.Format("Could not load file {0}, nor {1}.", TBF.Program.LocalSettingsFileName, TBF.Program.LocalSettingsBackupName)); Console.ReadLine(); return; } } else { /// Loading local seetings from the regular config file was successful. Update the backup File.Copy(TBF.Program.LocalSettingsFileName, TBF.Program.LocalSettingsBackupName, true); } /// /// Process local settings so that windows are shifted to the 1st monitor /// LeftToSecondMonitor(ref ls.MainWndLeft); LeftToSecondMonitor(ref ls.ComponentsDlgLeft); LeftToSecondMonitor(ref ls.PopupResultsLeft); LeftToSecondMonitor(ref ls.PathsDlgLeft); LeftToSecondMonitor(ref ls.TransitionsDlgLeft); LeftToSecondMonitor(ref ls.MetrologyDlgLeft); LeftToSecondMonitor(ref ls.ConditionsDlgLeft); LeftToSecondMonitor(ref ls.UncertaintyDlgLeft); LeftToSecondMonitor(ref ls.SchDrawingDlgLeft); LeftToSecondMonitor(ref ls.ProceduresDlgLeft); LeftToSecondMonitor(ref ls.OneProcedureDlgLeft); LeftToSecondMonitor(ref ls.EnduranceDlgLeft); ls.Save(); Console.WriteLine("All windows were shifted to the second monitor"); Console.ReadLine(); return; } static void LeftToFirstMonitor(ref int left) { while (left >= 1920) { left -= 1920; } if (left < 0) { left = 0; } } static void LeftToSecondMonitor(ref int left) { while (left < 1920) { left += 1920; } if (left >= 3840) { left = 1920; } } } }