private void userOffline(NetworkChat.Lan.NetworkUser User) { if (UserOffline != null) { UserOffline(User); } }
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(); }
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); }