using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using SKYPE4COMLib;
|
|
|
|
namespace Skype_History_Viewer
|
|
{
|
|
public partial class FrmMain : Form
|
|
{
|
|
private Boolean connected = false;
|
|
private Skype skype = new Skype();
|
|
|
|
public FrmMain()
|
|
{
|
|
InitializeComponent();
|
|
connected = connectToSkype();
|
|
}
|
|
|
|
private void cmdAdd_Click(object sender, EventArgs e)
|
|
{
|
|
if(!connected)
|
|
{
|
|
errorMessage();
|
|
}
|
|
else
|
|
{
|
|
//displays the chat of selected user
|
|
String name = lstUsers.GetItemText(lstUsers.SelectedItem);
|
|
String display = "";
|
|
|
|
foreach (Chat oChat in skype.Chats)
|
|
{
|
|
|
|
foreach (ChatMessage oMessage in oChat.Messages)
|
|
{
|
|
if(oMessage.Sender.FullName.Equals(name))
|
|
{
|
|
if (chTime.Checked) display = oMessage.Timestamp.ToString() + " ";
|
|
if (chUser.Checked)
|
|
{
|
|
display += oMessage.Sender.FullName + " ";
|
|
}
|
|
|
|
display += oMessage.Body;
|
|
lstChat.Items.Add(display);
|
|
display = "";
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void errorMessage()
|
|
{
|
|
connected = connectToSkype();
|
|
if(!connected)
|
|
{
|
|
MessageBox.Show("Could not connect to skype, please make sure that skype is running and this plugin is allowed.");
|
|
}
|
|
|
|
}
|
|
|
|
|
|
private Boolean connectToSkype()
|
|
{
|
|
try
|
|
{
|
|
//attaches the program to skype
|
|
skype.Attach();
|
|
|
|
//adds all users to lstUsers
|
|
if(!connected)
|
|
{
|
|
foreach (User user in skype.Friends)
|
|
{
|
|
lstUsers.Items.Add(user.FullName);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private void cmdExport_Click(object sender, EventArgs e)
|
|
{
|
|
if (!connected)
|
|
{
|
|
errorMessage();
|
|
}
|
|
else
|
|
{
|
|
String name = lstUsers.GetItemText(lstUsers.SelectedItem);
|
|
String path = saveFileDialog("Skype_History_" + name + ".txt");
|
|
if(path != null)
|
|
{
|
|
System.IO.StreamWriter file = new System.IO.StreamWriter(path);
|
|
|
|
String line = "";
|
|
foreach (Chat oChat in skype.Chats)
|
|
{
|
|
foreach (ChatMessage oMessage in oChat.Messages)
|
|
{
|
|
if(oMessage.Sender.FullName.Equals(name))
|
|
{
|
|
if (chTime.Checked) line = oMessage.Timestamp.ToString() + " ";
|
|
if (chUser.Checked) line += oMessage.Sender.FullName + " ";
|
|
line += oMessage.Body;
|
|
file.WriteLine(line);
|
|
line = "";
|
|
}
|
|
}
|
|
}
|
|
file.Close();
|
|
MessageBox.Show("Save Complete");
|
|
}
|
|
}
|
|
}
|
|
|
|
private void cmdExportAll_Click(object sender, EventArgs e)
|
|
{
|
|
if (!connected)
|
|
{
|
|
errorMessage();
|
|
}
|
|
else
|
|
{
|
|
String path = saveFileDialog("SkypeHistory.txt");
|
|
if(path != null) //makes sure that user did not click on cancle on save file dialog
|
|
{
|
|
System.IO.StreamWriter file = new System.IO.StreamWriter(path);
|
|
String line = "";
|
|
|
|
//exports all skype history to a text file
|
|
foreach (Chat oChat in skype.Chats)
|
|
{
|
|
foreach (ChatMessage oMessage in oChat.Messages)
|
|
{
|
|
if (chTime.Checked) line = oMessage.Timestamp.ToString() + " ";
|
|
if (chUser.Checked) line += oMessage.Sender.FullName + " ";
|
|
line += oMessage.Body;
|
|
file.WriteLine(line);
|
|
line = "";
|
|
}
|
|
}
|
|
file.Close();
|
|
MessageBox.Show("Save Complete");
|
|
}
|
|
}
|
|
}
|
|
|
|
private void cmdClear_Click(object sender, EventArgs e)
|
|
{
|
|
lstChat.Items.Clear();
|
|
}
|
|
private String saveFileDialog(String text)
|
|
{
|
|
SaveFileDialog saveFile = new SaveFileDialog();
|
|
saveFile.FileName = text;
|
|
saveFile.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
|
|
if(saveFile.ShowDialog() == DialogResult.OK)
|
|
{
|
|
return saveFile.FileName;
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
}
|