Esempio n. 1
0
        static void StartServer()
        {
            Task.Factory.StartNew(() =>
            {
                var server = new NamedPipeServerStream(PIPE_NAME);

                while (true)
                {
                    server.WaitForConnection();
                    StreamReader reader = new StreamReader(server);
                    StreamWriter writer = new StreamWriter(server);
                    string line         = "";
                    while ((line = reader.ReadLine()) != null)
                    {
                        App.Current.Dispatcher.Invoke(() =>
                        {
                            AddTorrentView win = new AddTorrentView();
                            win.Show(line);
                            win.Activate();
                        }, System.Windows.Threading.DispatcherPriority.Send);
                    }
                    server.Disconnect();
                }
            });
        }
Esempio n. 2
0
        protected override void OnStartup(StartupEventArgs e)
        {
            string[] args = Environment.GetCommandLineArgs();

            //Enforce Single Instance
            bool aIsNewInstance = false;

            _Mutex = new Mutex(true, "TransmissionFluid", out aIsNewInstance);
            if (!aIsNewInstance)
            {
                if (args.Length > 0)
                {
                    //Named Pipe Client
                    using (var client = new NamedPipeClientStream(PIPE_NAME))
                    {
                        client.Connect();

                        StreamReader reader = new StreamReader(client);
                        StreamWriter writer = new StreamWriter(client);

                        writer.WriteLine(args[1]);
                        writer.Flush();

                        client.Close();
                    }
                }

                //Shutdown this instance
                App.Current.Shutdown();
            }

            StartServer();

            if (args.Length > 1)
            {
                AddTorrentView win = new AddTorrentView();
                win.Show(args[1]);
                win.Activate();
            }


            SettingsManager.Instance.LoadSettings();
            //TODO: Add RPC Session DownloadDir to list.
            string defaultDir = @"/home/";

            if (!SettingsManager.Instance.Settings.RecentFolders.Contains(defaultDir))
            {
                SettingsManager.Instance.Settings.RecentFolders.Add(defaultDir);
            }

            base.OnStartup(e);
        }