public void Launch(Client c) { try { rdpFile = CreateRdpFile(c); LaunchRdc(); } catch (Exception e) { System.Windows.MessageBox.Show(e.Message); } }
public void Add(string group, ProtectedStringDictionary dict) { Client client = new Client(dict); if (!clientList.ContainsKey(group)) { clientList.Add(group, new List<Client> { client }); } else { clientList[group].Add(client); clientList[group] = clientList[group].OrderBy(x => x.GetTitle()).ToList(); } }
private string CreateRdpFile(Client c) { List<string> contents = new List<string>() { "screen mode id:i:2", "use multimon:i:0", "session bpp:i:16", "compression:i:1", "keyboardhook:i:2", "audiocapturemode:i:0", "videoplaybackmode:i:1", "connection type:i:4", "displayconnectionbar:i:1", "disable wallpaper:i:1", "allow font smoothing:i:0", "allow desktop composition:i:0", "disable full window drag:i:1", "disable menu anims:i:1", "disable themes:i:0", "disable cursor setting:i:0", "bitmapcachepersistenable:i:1", "audiomode:i:0", "redirectprinters:i:1", "redirectcomports:i:0", "redirectsmartcards:i:1", "redirectclipboard:i:1", "redirectposdevices:i:0", "redirectdirectx:i:1", "autoreconnection enabled:i:1", "authentication level:i:2", "prompt for credentials:i:0", "negotiate security layer:i:1", "remoteapplicationmode:i:0", "alternate shell:s:", "shell working directory:s:", "gatewayhostname:s:", "gatewayusagemethod:i:4", "gatewaycredentialssource:i:4", "gatewayprofileusagemethod:i:0", "promptcredentialonce:i:1", "use redirection server name:i:0", "drivestoredirect:s:" }; contents.Add("winposstr:s:" + WindowPosition()); contents.Add("desktopwidth:i:" + SystemParameters.VirtualScreenWidth.ToString()); contents.Add("desktopheight:i:" + SystemParameters.VirtualScreenHeight.ToString()); contents.Add("full address:s:" + FullAddress(c, c.GetUrl())); contents.Add("username:s:" + c.GetUserName()); contents.Add("password 51:b:" + RdpPassword.EncryptPassword(c.GetPassword())); string rdpFile = Path.Combine(Path.GetTempPath(), UniqueConnectionFileName(c.GetSafeTitle(), c.GetUrl())); try { File.WriteAllText(rdpFile, String.Join(Environment.NewLine, contents.ToArray())); } catch (Exception e) { System.Windows.MessageBox.Show(e.Message); throw e; } return rdpFile; }
/// <summary> /// Return the full address including any selected options. /// </summary> /// <param name="client">Client with settings to check</param> /// <param name="url">URL to start with</param> /// <returns></returns> private string FullAddress(Client client, string url) { List<string> fullAddress = new List<string>() { url }; if (client.settings.Admin) { fullAddress.Add("/admin"); } if (client.settings.Public) { fullAddress.Add("/public"); } return String.Join(" ", fullAddress); }
private void ToggleOptions(bool enabled, Client client) { ToggleOptions(enabled); CheckBoxAdmin.IsChecked = client.settings.Admin; CheckBoxPublic.IsChecked = client.settings.Public; }