protected override void OnStartup(StartupEventArgs e) { Environment.CurrentDirectory = new DirectoryInfo(Assembly.GetExecutingAssembly().Location).Parent.FullName; if (e.Args.Length != 0) { try { TcpClient tcp = new TcpClient(); tcp.Connect("127.0.0.1", 65432); NetworkStream ns = tcp.GetStream(); Random rnd = new Random(); StreamWriter sw = new StreamWriter(ns); foreach (string str in e.Args) { JsonObject jo = new JsonObject(); jo.Add("id", rnd.Next()); jo.Add("method", "addtorrentbypath"); jo.Add("params", new JsonArray() { str }); sw.WriteLine(jo.ToString()); sw.Flush(); } tcp.Close(); Environment.Exit(0); } catch (Exception ex) { Console.WriteLine(ex.Message); to_add = e.Args; } } else { to_add = new string[0]; } base.OnStartup(e); Settings = Settings.Load("./config.xml"); CurrentLanguage = LanguageEngine.LoadDefault(); LoadTheme(Settings.Theme); }
private void SaveSettings(object sender, RoutedEventArgs e) { local.TrayIconClickBehavior = TrayIconBehaviors[tcb.SelectedIndex]; local.TrayIconRightClickBehavior = TrayIconBehaviors[trcb.SelectedIndex]; local.TrayIconDoubleClickBehavior = TrayIconBehaviors[tdcb.SelectedIndex]; local.MinimizeBehavior = WindowBehaviors[mb.SelectedIndex]; local.ExitBehavior = WindowBehaviors[cb.SelectedIndex]; local.EncryptionType = (EncryptionTypeEnum)enctype.SelectedIndex; MainWindow mw = (App.Current.MainWindow as MainWindow); local.Theme = (Theme)themeCombox.SelectedItem; if (this.langCombox.SelectedIndex > -1) { string new_choice = this.langCombox.SelectedValue.ToString(); if (new_choice != local.DefaultLanguage) { local.DefaultLanguage = new_choice; if (App.CurrentLanguage != null) { App.CurrentLanguage.ReloadLang(local.DefaultLanguage); } else { App.CurrentLanguage = LanguageEngine.LoadDefault(); } } } if (local.CheckForUpdates) { mw.StartAutoUpdater(); } else { mw.StopAutoUpdater(); } if (local.EnableDHT) { mw.state.LibtorrentSession.StartDht(); } else { mw.state.LibtorrentSession.StopDht(); } if (local.EnableLSD) { mw.state.LibtorrentSession.StartLsd(); } else { mw.state.LibtorrentSession.StopLsd(); } if (local.EnableNAT_PMP) { mw.state.LibtorrentSession.StartNatPmp(); } else { mw.state.LibtorrentSession.StopNatPmp(); } if (local.Enable_UPNP) { mw.state.LibtorrentSession.StartUpnp(); } else { mw.state.LibtorrentSession.StopUpnp(); } App.Settings = (Settings)Utility.CloneObject(local); this.Close(); }