Exemple #1
0
 private void userOffline(NetworkChat.Lan.NetworkUser User)
 {
     if (UserOffline != null)
     {
         UserOffline(User);
     }
 }
Exemple #2
0
        public static void BroadCastPresence(NetworkChat.Lan.Presence Presence)
        {
            IPEndPoint endPoint;

            NetworkChat.Lan.NetworkUser lc = NetworkChat.Lan.GetLocalComputer();
            string presence = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>";

            presence += "<envelope><user>" + Environment.UserName;
            presence += "</user><computer>" + lc.ComputerName + "</computer>";
            //Image Oimg = Image.FromFile(@"C:\Users\" + Environment.UserName + @"\AppData\Local\Temp\" + Environment.UserName + ".bmp");
            //Image Nimg = new Bitmap(Oimg, new Size(32, 32));

            //Image img = Nimg; // Image.FromFile(@"C:\Users\James\Downloads\mouse_silence.gif");//
            //MemoryStream ms = new MemoryStream();
            //img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
            //byte[] buffer = ms.ToArray();
            //ms.Close();

            ////FileStream fs = new FileStream(@"C:\Users\" + Environment.UserName + @"\AppData\Local\Temp\" + Environment.UserName + ".bmp", FileMode.Open);
            ////byte[] buffer = new byte[fs.Length];
            ////fs.Read(buffer, 0, buffer.Length);
            ////fs.Close();

            ////ms.Write(buffer, 0, buffer.Length);
            //string ico = Convert.ToBase64String(buffer);
            //presence += "<icon>" + ico + "</icon>";
            presence += "<timestamp>" + DateTime.Now + "</timestamp>";
            presence += "<ip>" + lc.IPAddress + "</ip>";
            presence += "<presence>" + Enum.GetName(typeof(NetworkChat.Lan.Presence), Presence) + "</presence>";
            presence += "</envelope>";

            string enc_presence = XmlEncryption.encryptXml(presence);

            //try
            //{
            //Send multicast packets to the listener.
            Socket mcastSocket = new Socket(AddressFamily.InterNetwork,
                                            SocketType.Dgram,
                                            ProtocolType.Udp);

            endPoint = new IPEndPoint(mcastAddress, mcastPort);
            mcastSocket.SendTo(Encoding.ASCII.GetBytes(enc_presence), endPoint);
            // Console.WriteLine("Multicast data sent.....");
            //}
            //catch (Exception e)
            //{
            //    Console.WriteLine("\n" + e.ToString());
            //}

            mcastSocket.Close();
        }
Exemple #3
0
        private void invokeMessage(Lan.NetworkUser User, string Message)
        {
            //ONLY do this if the user is present
            object o            = tabPage1.Tag;
            bool   showOnScreen = false;

            if (o.GetType() == typeof(NetworkChat.Lan.NetworkUser))
            {
                NetworkChat.Lan.NetworkUser nu = (NetworkChat.Lan.NetworkUser)o;
                if (nu.UserUniqueId.ToLower() == User.UserUniqueId)
                {
                    showOnScreen = true;
                }
            }
            else //group
            {
            }


            if (showOnScreen)
            {
                richTextBoxReplies.Select(richTextBoxReplies.TextLength, 0);
                //use custom colors for users...
                richTextBoxReplies.SelectedRtf = @"{\rtf1\ansi\deff0{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}" + @"\cf2[" + User.TimeStamp.ToShortTimeString() + "] " + User.UserName + @": }";
                richTextBoxReplies.Select(richTextBoxReplies.TextLength, 0);

                richTextBoxReplies.SelectedRtf = Message;
                richTextBoxReplies.ScrollToCaret(); //.Select(richTextBox1.TextLength, 0);

                if (Settings.Default.AlwaysSpeakMessages)
                {
                    RichTextBox ritb = new RichTextBox();
                    ritb.Rtf = Message;
                    Speak.SpeakPhrase(User.UserName + " says: " + ritb.Text);
                }
            }
            else if (!showOnScreen | !this.TopMost | this.WindowState == FormWindowState.Minimized)//not shown on screen just flash....
            {
                //add user to usersWithMessages;
                notifyIcon1.Tag = User;

                if (Settings.Default.PopupOnNewMessage)
                {
                    notifyIcon1.ShowBalloonTip(5000, "You have a new message", "You have a new message from " + User.UserName, ToolTipIcon.Info);
                }

                if (Settings.Default.SoundOnNewMessage)
                {
                    if (Settings.Default.SoundFileLocation != "")
                    {
                        if (File.Exists(Settings.Default.SoundFileLocation))
                        {
                            SoundPlayer sp = new SoundPlayer(Settings.Default.SoundFileLocation);
                            sp.Play();
                        }
                        else
                        {
                            SystemSounds.Beep.Play();
                        }
                    }
                    else
                    {
                        SystemSounds.Beep.Play();
                    }
                }

                if (Settings.Default.SpeakMessage | Settings.Default.AlwaysSpeakMessages)
                {
                    RichTextBox ritb = new RichTextBox();
                    ritb.Rtf = Message;
                    Speak.SpeakPhrase("You have a message from " + User.UserName + ", which says: " + ritb.Text);
                }
                else if (Settings.Default.SpeakMessageIsFrom)
                {
                    Speak.SpeakPhrase("You have a new message from " + User.UserName);
                }



                usersWithMessages.Add(User);
            }

            //get old string
            //save as user who sent


            RichTextBox rtb = new RichTextBox();
            string      old = userMessages.LoadUserMessageText(User.UserUniqueId);

            rtb.Rtf = old;
            rtb.Select(rtb.TextLength, 0);

            rtb.SelectedRtf = @"{\rtf1\ansi\deff0{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}" + @"\cf2[" + User.TimeStamp.ToShortTimeString() + "] " + User.UserName + @": " + Message + " }";
            richTextBoxReplies.ScrollToCaret();


            userMessages.SaveUserMessageText(User.UserUniqueId, rtb.Rtf);
        }