Clone the Bitmap on the "UpdateImage" method. It should be the
responsibility of "UpdateImage" anyways because it is the method
responsible for specifying how to manage the Bitmap provided. This also
serves an issue where the call to clone the Bitmap and cast it to a
Bitmap object was no longer in a try-catch block as it used to be (and
should be once more).
If the packet's "Filename" property is null or empty, we can avoid
making an unnecessary string for the downloadPath by placing the
validation above it.
Added an "IsError" property to the ShellCommandResponse to denote if the
response should be handled a certain way (if it is a response to a
ShellCommand error, then print it differently).
Also correctly queues up two different threads on shell initialization.
These ManualResetEvents now will signal the Shell's redirected output to
handle either the output, or the error output. Not at the same time
(will cause deadlocking).
We now append the text instead of concatenating. Not sure how much more
efficient this is, but it is certainly more readable.
Changing the way was used to calculate send/received data by reverse
proxy
-This change will view the value with decimal point (2 num) to make the
values more accurate
-Changing the func name used from "GetFileSize" to "GetDataSize" ( Found
in xServer.Core.Helper )
Dispose of unmanaged resources used by the server's UnsafeStreamCodec
and JpgCompression (because it is pretty related to the
UnsafeStreamCodec). Made sure that the UnsafeStreamCodec was being
disposed of before being re-assigned.
Note: I did not reflect these changes to the client's UnsafeStreamCodec
because the implementation of the client's codec is a bit different in
the CommandHandler. This different implementation caused instability in
the client. In the server, I noticed decreased memory consumption and
decreased fluctuation in the memory used.
-added hookless keylogger class with unicode support
-logs on keylogger class are saved in html format
-added keylogger form using webbrowser to load the log as an html file
-added context menu keylogger option under surveillance
-started keylogger setting enable/disable on client file execution
(didn't complete this, wasn't sure how to do it properly. just added
the setting in the settings class and in program class for the logic.
only thing left is the server side stuff)
left todo:
-encryption/decryption of logs if desired
-options to enable/disable when building client, etc...
Fixed a bug where changing resolutions while Remote Desktop is running
would crash both the client + server. This fix ensures that the Remote
Desktop features continues to run accurately after changing resolutions
on the client.
Fixed a potential CrossThreadException. Would have gotten an error if this method was called by a different Thread because FrmSi's 'lstSystem' would be accessed by the wrong Thread.