Exemplo n.º 1
0
        /*Модальное отображение диалога*/
        public static DialogResult Show(String text, String caption, Global.DialogTypes type)
        {
            DialogForm tempDialog = new DialogForm(text, caption, type);

            tempDialog.ShowDialog();
            DialogResult dialog = tempDialog.result;

            tempDialog.Close();
            return(dialog);
        }
Exemplo n.º 2
0
        public static string Show(String text, String caption, Global.DialogTypes type, out DialogResult dialogResult)
        {
            DialogForm tempDialog = new DialogForm(text, caption, type);

            tempDialog.ShowDialog();
            dialogResult = tempDialog.result;
            string newValue = tempDialog.editText;

            tempDialog.Close();
            return(newValue);
        }
Exemplo n.º 3
0
        /*Поток для приема подключений*/
        public async Task RunAsync()
        {
            try
            {
                var nat = new NatDiscoverer();
                var cts = new CancellationTokenSource(5000);
                // using SSDP protocol, it discovers NAT device.
                var device = await nat.DiscoverDeviceAsync(PortMapper.Upnp, cts);

                // Пробрасываем порты для экрана
                await device.CreatePortMapAsync(new Mapping(Protocol.Udp, Global.receivePort, Global.receivePort, "ToServer port"));

                await device.CreatePortMapAsync(new Mapping(Protocol.Udp, Global.sendPort, Global.sendPort, "ToClient port"));

                //Пробрасываем порты для чата и звука
                await device.CreatePortMapAsync(new Mapping(Protocol.Udp, Global.communicationsSendPort, Global.communicationsSendPort, "Chat & Sound send port"));

                await device.CreatePortMapAsync(new Mapping(Protocol.Udp, Global.communicationsReceivePort, Global.communicationsReceivePort, "Chat & Sound receive port"));
            }
            catch (Exception ex)
            {
                if (ex.GetType().Name != "NatDeviceNotFoundException")
                {
                    DialogForm.Show("Ошибка", ex.Message, Global.DialogTypes.message);
                }
            }
            try
            {
                /*Привязываем сокеты к серверному адресу*/
                screenListener.Bind(hostPoint);
                mediaListener.Bind(new IPEndPoint(IPAddress.Parse("0.0.0.0"), Global.communicationsReceivePort));
                /*Ждем инициализации удаленного устройства*/
                await ConnectAsync();

                /*Запускаем задачи чтения данных*/
                Task readScreenCommands = new Task(ReadScreen);
                readScreenCommands.Start();
                Task readMediaCommands = new Task(ReadMedia);
                readMediaCommands.Start();
                /*Запускаем задачу отправки данных*/
                Task writeScreenCommands = new Task(WriteScreen);
                writeScreenCommands.Start();
                Task writeMediaCommands = new Task(WriteMedia);
                writeMediaCommands.Start();
                screenActions.Start();
                /*Ожидаем завершения задач*/
                Task.WaitAll(readScreenCommands, writeScreenCommands, readMediaCommands, writeMediaCommands);
            }
            catch (Exception ex)
            {
                DialogForm.Show("Ошибка", ex.ToString(), Global.DialogTypes.message);
            }
        }
Exemplo n.º 4
0
        private void MainServerForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult dialogResult = DialogForm.Show("Выход", "Завершить работу программы?", Global.DialogTypes.close);

            if (dialogResult == DialogResult.Yes)
            {
                notifyIcon.Dispose();
                chat.Dispose();
                properties.Dispose();
                this.Dispose();
            }
            else
            {
                e.Cancel = true;
            }
        }
Exemplo n.º 5
0
 //Закрытие формы
 public override void DBForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     e.Cancel = true;
     if (enterBox.Text != "")
     {
         DialogResult hideDialog = DialogForm.Show("Выход из чата", "У вас остались неотправленные \nсообщения. Продолжить?", Global.DialogTypes.close);
         if (hideDialog == DialogResult.Yes)
         {
             enterBox.Clear();
             this.Hide();
         }
     }
     else
     {
         this.Hide();
     }
 }
Exemplo n.º 6
0
 public override void DBForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (!Global.connection.Connected)
     {
         DialogResult dialogResult = DialogForm.Show("Выход", "Завершить работу программы?", Global.DialogTypes.close);
         if (dialogResult == DialogResult.Yes)
         {
             this.Dispose();
         }
         else
         {
             e.Cancel = true;
         }
     }
     else
     {
         e.Cancel = true;
         Hide();
     }
 }
Exemplo n.º 7
0
        /*Загрузка формы*/
        private void WaitConnectionForm_Load(object sender, EventArgs e)
        {
            int marginCoef = 10;

            this.Height = 200;
            /*Генерируем случайный пароль*/
            Global.securityCode = GetRandomCode(8);
            /*Инициализируем экранную переменную*/
            Global.screenActions = new ScreenActions();
            /*Инициализируем медиа-переменную*/
            Global.mediaData = new MediaData();
            #region Контролы
            /*Label'ы*/
            DBLabel nameLabel = new DBLabel("Имя пользователя:");
            DBLabel ipLabel   = new DBLabel("Текущий адрес:");
            DBLabel passLabel = new DBLabel("Пароль:");
            username           = new DBCopyTextBox(Global.username.ToString());
            address            = new DBCopyTextBox(String.Format(Global.externalIP + ":{0}", Global.receivePort));
            pass               = new DBCopyTextBox(Global.securityCode);
            nameLabel.Location = new Point(marginCoef, marginCoef * 2);
            ipLabel.Location   = new Point(marginCoef, nameLabel.Location.Y + nameLabel.Height + marginCoef);
            passLabel.Location = new Point(marginCoef, ipLabel.Location.Y + ipLabel.Height + marginCoef);
            username.Location  = new Point(nameLabel.Width + marginCoef, nameLabel.Location.Y);
            address.Location   = new Point(ipLabel.Width + marginCoef, ipLabel.Location.Y);
            pass.Location      = new Point(passLabel.Width + marginCoef, passLabel.Location.Y);
            WorkingArea.Controls.Add(nameLabel);
            WorkingArea.Controls.Add(ipLabel);
            WorkingArea.Controls.Add(passLabel);
            WorkingArea.Controls.Add(username);
            WorkingArea.Controls.Add(address);
            WorkingArea.Controls.Add(pass);
            /*Кнопки редактирования*/
            changeUsernameButton          = new DBIconButton(Properties.Resources.edit_icon);
            changeUsernameButton.Location = new Point(username.Location.X + username.Width, username.Location.Y);
            changePortButton           = new DBIconButton(Properties.Resources.edit_icon);
            changePortButton.Location  = new Point(address.Location.X + address.Width, address.Location.Y);
            refreshPassButton          = new DBIconButton(Properties.Resources.refresh_icon);
            refreshPassButton.Location = new Point(pass.Location.X + pass.Width, pass.Location.Y);
            /*По нажатию на кнопку вызываем диалог изменения свойства*/
            changeUsernameButton.Click += ((o, ev) =>
            {
                DialogResult result = new DialogResult();
                string editField = DialogForm.Show("Имя пользователя", Global.username, Global.DialogTypes.edit, out result);
                if (result == DialogResult.OK)
                {
                    Global.username = editField;
                }
                username.Text = Global.username;
                changeUsernameButton.Location = new Point(username.Location.X + username.Width, username.Location.Y);
            });
            changePortButton.Click += ((o, ev) =>
            {
                DialogResult result = new DialogResult();
                string editField = DialogForm.Show("Порт", Global.username, Global.DialogTypes.edit, out result);
                if (result == DialogResult.OK)
                {
                    Global.receivePort = Convert.ToInt32(editField);
                    address.Text = String.Format(Global.externalIP + ":{0}", Global.receivePort);
                    changePortButton.Location = new Point(address.Location.X + address.Width, address.Location.Y);
                    Global.connection = new RemoteConnection();
                }
            });
            /*По нажатию на кнопку обновляем пароль*/
            refreshPassButton.MouseClick += RefreshPassButton_MouseClick;
            WorkingArea.Controls.Add(changeUsernameButton);
            WorkingArea.Controls.Add(changePortButton);
            WorkingArea.Controls.Add(refreshPassButton);
            #endregion
            server            = new MainServerForm();
            server.properties = this;
            /*Инициализируем сетевую переменную*/
            Global.connection = new RemoteConnection();
            /*Заводим таймер на отслеживание подключения*/
            Timer connectionMonitor = new Timer();
            connectionMonitor.Interval = 100;
            connectionMonitor.Tick    += ((o, ev) =>
            {
                if (Global.connection.Connected)
                {
                    server.Show();
                    connectionMonitor.Stop();
                }
                else
                {
                    server.Hide();
                }
            });
            connectionMonitor.Start();
        }