using System;
using System.IO;
using System.Xml;
using System.Text;
using System.Diagnostics;
using System.Data;
using System.Net;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
using System.Threading;
using System.Runtime.Serialization.Formatters.Binary;
using Microsoft.Win32;
namespace RDPManager
{
[Serializable]
public class Credentials
{
private String userName = "";
public String UserName
{
get { return userName; }
set { userName = value; }
}
private String passWord = "";
public String Password
{
get { return passWord; }
set { passWord = value; }
}
private String domain = "";
public String Domain
{
get { return domain; }
set { domain = value; }
}
}
[Serializable]
public class Machine
{
private Int32 hashCode = -1;
//private bool hashCodeSet = false;
private string machineName = "";
private string displayName = "";
private string screenMode = "";
private string desktopWidth = "";
private string desktopHeight = "";
private string sessionBpp = "";
private string compression = "";
private string keyboardHook = "";
private string audioMode = "";
private string drivesToRedirect = "";
private string redirectPrinters = "";
private string redirectComPorts = "";
private string redirectSmartCards = "";
private string disableWallpaper = "";
private string disableWindowDrag = "";
private string disableAnims = "";
private string disableThemes = "";
private string disableCursor = "";
private string serverPort = "";
private string displayConnectionBar = "";
private string connectToConsole = "";
private string cmdLine = "";
private string cmdArgs = "";
private bool disableCredsSPSupport = false;
private Credentials manualCred = new Credentials();
private bool isManual = false;
public Machine()
{
}
public void SetDefault()
{
machineName = "Default";
displayName = "Default";
screenMode = "1";
displayConnectionBar = "1";
desktopWidth = "1024";
desktopHeight = "768";
sessionBpp = "16";
compression = "1";
keyboardHook = "2";
audioMode = "2";
drivesToRedirect = "";
redirectPrinters = "";
redirectComPorts = "0";
redirectSmartCards = "0";
disableWallpaper = "1";
disableWindowDrag = "1";
disableAnims = "1";
disableThemes = "1";
disableCursor = "0";
serverPort = "3389";
connectToConsole = "0";
cmdLine = "";
cmdArgs = "";
disableCredsSPSupport = false;
hashCode = -1;
}
public void Clear()
{
machineName = "";
displayName = "";
screenMode = "";
displayConnectionBar = "";
desktopWidth = "";
desktopHeight = "";
sessionBpp = "";
compression = "";
keyboardHook = "";
audioMode = "";
drivesToRedirect = "";
redirectPrinters = "";
redirectComPorts = "";
redirectSmartCards = "";
disableWallpaper = "";
disableWindowDrag = "";
disableAnims = "";
disableThemes = "";
disableCursor = "";
serverPort = "";
connectToConsole = "";
cmdLine = "";
cmdArgs = "";
disableCredsSPSupport = false;
hashCode = -1;
}
public void CopyFrom(Machine mach)
{
screenMode = mach.ScreenMode;
displayConnectionBar = mach.DisplayConnectionBar;
desktopWidth = mach.DesktopWidth;
desktopHeight = mach.DesktopHeight;
sessionBpp = mach.SessionBpp;
compression = mach.Compression;
keyboardHook = mach.KeyboardHook;
audioMode = mach.audioMode;
drivesToRedirect = mach.DrivesToRedirect;
redirectPrinters = mach.RedirectPrinters;
redirectComPorts = mach.RedirectComPorts;
redirectSmartCards = mach.redirectSmartCards;
disableWindowDrag = mach.DisableWindowDrag;
disableAnims = mach.DisableAnims;
disableThemes = mach.DisableThemes;
disableCursor = mach.DisableCursor;
disableWallpaper = mach.DisableWallpaper;
serverPort = mach.ServerPort;
connectToConsole = mach.ConnectToConsole;
machineName = mach.MachineName;
displayName = mach.DisplayName;
cmdLine = mach.CmdLine;
cmdArgs = mach.CmdArgs;
disableCredsSPSupport = mach.DisableCredsSPSupport;
}
public override int GetHashCode()
{
if( true ) //hashCode == -1 )
{
StringBuilder tmpStr = new StringBuilder();
tmpStr.Append(machineName);
tmpStr.Append(displayName);
tmpStr.Append(screenMode);
tmpStr.Append(displayConnectionBar);
tmpStr.Append(desktopWidth);
tmpStr.Append(desktopHeight);
tmpStr.Append(compression);
tmpStr.Append(keyboardHook);
tmpStr.Append(audioMode);
tmpStr.Append(sessionBpp);
tmpStr.Append(drivesToRedirect);
tmpStr.Append(redirectPrinters);
tmpStr.Append(redirectComPorts);
tmpStr.Append(redirectSmartCards);
tmpStr.Append(disableWallpaper);
tmpStr.Append(disableWindowDrag);
tmpStr.Append(disableAnims);
tmpStr.Append(disableThemes);
tmpStr.Append(disableCursor);
tmpStr.Append(serverPort);
tmpStr.Append(connectToConsole);
tmpStr.Append(cmdLine);
tmpStr.Append(cmdArgs);
hashCode = tmpStr.ToString().GetHashCode();
}
return hashCode;
}
public void SetHashCode(Int32 Value)
{
hashCode = Value;
//hashCodeSet = true;
return;
}
#region properties
public string MachineName
{
get { return machineName; }
set { machineName = value; }
}
public string DisplayName
{
get { return displayName; }
set { displayName = value; }
}
public string CmdLine
{
get { return cmdLine; }
set { cmdLine = value; }
}
public string CmdArgs
{
get { return cmdArgs; }
set { cmdArgs = value; }
}
public string ScreenMode
{
get { return screenMode; }
set { screenMode = value; }
}
public string DesktopWidth
{
get { return desktopWidth; }
set { desktopWidth = value; }
}
public string DesktopHeight
{
get { return desktopHeight; }
set { desktopHeight = value; }
}
public string SessionBpp
{
get { return sessionBpp; }
set { sessionBpp = value; }
}
public string Compression
{
get { return compression; }
set { compression = value; }
}
public string KeyboardHook
{
get { return keyboardHook; }
set { keyboardHook = value; }
}
public string AudioMode
{
get { return audioMode; }
set { audioMode = value; }
}
public string DrivesToRedirect
{
get { return drivesToRedirect; }
set { drivesToRedirect = value; }
}
public string RedirectPrinters
{
get { return redirectPrinters; }
set { redirectPrinters = value; }
}
public string RedirectComPorts
{
get { return redirectComPorts; }
set { redirectComPorts = value; }
}
public string RedirectSmartCards
{
get { return redirectSmartCards; }
set { redirectSmartCards = value; }
}
public string DisableWallpaper
{
get { return disableWallpaper; }
set { disableWallpaper = value; }
}
public string DisableWindowDrag
{
get { return disableWindowDrag; }
set { disableWindowDrag = value; }
}
public string DisableAnims
{
get { return disableAnims; }
set { disableAnims = value; }
}
public string DisableThemes
{
get { return disableThemes; }
set { disableThemes = value; }
}
public string DisableCursor
{
get { return disableCursor; }
set { disableCursor = value; }
}
public string ServerPort
{
get { return serverPort; }
set { serverPort = value; }
}
public string ConnectToConsole
{
get { return connectToConsole; }
set { connectToConsole = value; }
}
public string DisplayConnectionBar
{
get { return displayConnectionBar; }
set { displayConnectionBar = value; }
}
public bool DisableCredsSPSupport
{
get { return disableCredsSPSupport; }
set { disableCredsSPSupport = value; }
}
public Credentials ManualCred
{
get { return manualCred; }
set { manualCred = value; }
}
public bool IsManual
{
get { return isManual; }
set { isManual = value; }
}
#endregion
public override String ToString()
{
return displayName;
}
}
}