public void Save(ServerElement serverElement) { UISection config = ConfigurationManager.LoadConfiguration(); foreach (ServerElement se in config.ServerCollection) { if (serverElement.Default && se.Name != serverElement.Name) { se.Default = false; } } var server = (from ServerElement element in config.ServerCollection where element.Name == serverElement.Name select element).LastOrDefault(); if (server != null) { config.ServerCollection.Remove(server); } config.ServerCollection.Add(serverElement); ConfigurationManager.SaveConfiguration(config); }
private ConnectionDescription ReadConnection(ServerElement server) { var connection = _knownConnections.CreateFromProfile(server.Type.ConvertToString()); if (connection != null) { connection.Name = server.Name; PatchCommonParameters(connection.Parameters, () => server.Host, () => server.Port, () => server.Username, () => server.Password); } return(connection); }
public ServerSettingsControl() { if (App.Settings.Current.Servers.Count == 0) { var server = new ServerElement(); server.Name = "New Server"; server.Port = 6667; App.Settings.Current.Servers.Add(server); } InitializeComponent(); lstServers.SelectedIndex = 0; }
void AddServer(string name, string adress, int playerCount, string mode) { ServerElement serverElement = Instantiate(serverElementPrefab).GetComponent <ServerElement>(); serverElement.Init(name, adress, playerCount, serversContainer); Button serverButton = serverElement.GetComponent <Button>(); serverButton.onClick.AddListener(() => { ipAddress.text = adress; nat = ((mode == "NAT") ? true : false); Connect(); }); }
/// <summary> /// Method for launch WinSCP: SCP, FTP, SFTP Protocols /// </summary> /// <param name="protocol"> "scp://" or "ftp://" or "sftp://"</param> /// <param name="serverElement">Current selected server from Tree View</param> private static void LaunchWinScp(string protocol, ServerElement serverElement) { string[] winScpExtractPath = ExtractFilePath(Settings.Default.winscppath); string winScpPath = Environment.ExpandEnvironmentVariables(winScpExtractPath[0]); string winScpArgs = winScpExtractPath[1]; if (File.Exists(winScpPath)) { string host = serverElement.Host; string port = serverElement.Port != "" ? serverElement.Port : ""; using (Process winScpProcess = new Process()) { winScpProcess.StartInfo.FileName = Settings.Default.winscppath; winScpProcess.StartInfo.Arguments = protocol; if (serverElement.Username != "") { string[] s = { "%", " ", "+", "/", "@", "\"", ":", ";" }; serverElement.Username = OtherHelper.ReplaceU(s, serverElement.Username); serverElement.Password = OtherHelper.ReplaceU(s, serverElement.Password); winScpProcess.StartInfo.Arguments += serverElement.Username; winScpProcess.StartInfo.Arguments += serverElement.Password != "" ? ":" + serverElement.Password : ""; winScpProcess.StartInfo.Arguments += "@"; } winScpProcess.StartInfo.Arguments += (host != "" ? HttpUtility.UrlEncode(host) : "") ?? throw new InvalidOperationException(); winScpProcess.StartInfo.Arguments += port != "" ? ":" + port : ""; winScpProcess.StartInfo.Arguments += protocol == "ftp://" ? " /passive=" + (Settings.Default.winscppassive ? "on" : "off") : ""; winScpProcess.StartInfo.Arguments += Settings.Default.winscpkey && Settings.Default.winscpkeyfile != "" ? " /privatekey=\"" + Settings.Default.winscpkeyfile + "\"" : ""; winScpProcess.StartInfo.Arguments += winScpArgs != "" ? " " + winScpArgs : ""; winScpProcess.Start(); } } else { if (MessageBox.Show(Resources.connectionHelper_LaunchVnc_M1 + winScpPath + Resources.connectionHelper_LaunchVnc_M2, Resources.connectionHelper_LaunchVnc_Error, MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.OK) { formMain.optionsForm.bWSCPPath_Click(); } } }
public static void LaunchPlink(ServerElement currentServer, string command) { string plinkPath = Settings.Default.plinkpath; if (File.Exists(plinkPath)) { string strCmdText = "/C " + plinkPath + " -ssh -l " + currentServer.Username + " -pw " + currentServer.Password + " " + currentServer.Host + " \"" + command + "\" &pause"; Process.Start("CMD.exe", strCmdText); } else { if (MessageBox.Show("Could not find file \"" + plinkPath + "\"\nDo you want to change the configuration ?", Resources.connectionHelper_LaunchVnc_Error, MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.OK) { formMain.optionsForm.bNCPath_Click(); } } }
private void btnNew_Click(object sender, RoutedEventArgs e) { var server = new ServerElement(); string newName = server.Name = "New Server"; int i = 1; while (App.Settings.Current.Servers.OfType <ServerElement>().Any((s) => s.Name == (server.Name = string.Format(newName, i)))) { if (++i == 2) { newName += " {0}"; } } server.Port = 6667; App.Settings.Current.Servers.Add(server); lstServers.Items.Refresh(); lstServers.SelectedItem = server; }
private static void LaunchAmmyAdmin(ServerElement serverElement, XmlHelper xmlHelper) { var model = new AmmyAdminOptionsViewModel(xmlHelper); if (!File.Exists(model.AppPath)) { if (MessageBox.Show("Could not find file \"" + model.AppPath + "\"\nDo you want to change the configuration ?", Resources.connectionHelper_LaunchVnc_Error, MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.OK) { if (!model.ChangeAppPath()) { return; } } } string strCmdText = string.Format("/C \"{0}\" -connect {1} -password {2}", model.AppPath, serverElement.Host, serverElement.Password); Process.Start("CMD.exe", strCmdText); }
private static void LaunchTelnet(ServerElement serverElement) { string[] puttyExtractPath = ExtractFilePath(Settings.Default.puttypath); string puttyPath = Environment.ExpandEnvironmentVariables(puttyExtractPath[0]); if (File.Exists(puttyPath)) { string host = serverElement.Host; string port = serverElement.Port != "" ? serverElement.Port : "22"; using (Process puttyProcess = new Process()) { puttyProcess.StartInfo.FileName = Settings.Default.puttypath; puttyProcess.StartInfo.Arguments = "-telnet "; puttyProcess.StartInfo.Arguments += serverElement.Username != "" ? serverElement.Username + "@" : ""; puttyProcess.StartInfo.Arguments += host != "" ? host : ""; puttyProcess.StartInfo.Arguments += port != "" ? " " + port : ""; puttyProcess.Start(); Thread.Sleep(1500); IntPtr h = puttyProcess.MainWindowHandle; SetForegroundWindow(h); SendKeys.SendWait(serverElement.Username); SendKeys.SendWait("~"); SendKeys.SendWait(serverElement.Password); SendKeys.SendWait("~"); } } else { if (MessageBox.Show(Resources.connectionHelper_LaunchVnc_M1 + puttyPath + Resources.connectionHelper_LaunchVnc_M2, Resources.connectionHelper_LaunchVnc_Error, MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.OK) { formMain.optionsForm.bPuTTYPath_Click(); } } }
public void ConnectionChanged(ServerElement currentServer) { if (currentServer == null || currentServer.Type != ConnectionType.Rdp) { return; } connection = currentServer; gbRDP.Text = currentServer.Name; tabSettings.TabPages.Clear(); tabSettings.TabPages.Add(tabPages[currentServer.Type]); FirstRead = true; cbRDPAdmin.Checked = false; cbRDPDrivers.Checked = false; cbRDPSpan.Checked = false; if (File.Exists(Settings.Default.cfgpath)) { bool value; if (bool.TryParse(MainForm.XmlHelper.configGet(connection.Id + "_rdadmin"), out value)) { cbRDPAdmin.Checked = value; } if (bool.TryParse(MainForm.XmlHelper.configGet(connection.Id + "_rddrives"), out value)) { cbRDPDrivers.Checked = value; } if (bool.TryParse(MainForm.XmlHelper.configGet(connection.Id + "_rdspan"), out value)) { cbRDPSpan.Checked = value; } cbRDPSize.Text = MainForm.XmlHelper.configGet(connection.Id + "_rdsize"); } FirstRead = false; }
/// <summary> /// Method for launch PuTTy /// </summary> /// <param name="serverElement">Current selected server from Tree View<</param> private static void LaunchPuTTy(ServerElement serverElement) { string[] puttyExtractPath = ExtractFilePath(Settings.Default.puttypath); string puttyPath = Environment.ExpandEnvironmentVariables(puttyExtractPath[0]); string puttyArgs = puttyExtractPath[1]; if (File.Exists(puttyPath)) { string host = serverElement.Host; string port = serverElement.Port != "" ? serverElement.Port : "22"; using (Process puttyProcess = new Process()) { puttyProcess.StartInfo.FileName = Settings.Default.puttypath; puttyProcess.StartInfo.Arguments = "-ssh "; puttyProcess.StartInfo.Arguments += serverElement.Username != "" ? serverElement.Username + "@" : ""; puttyProcess.StartInfo.Arguments += host != "" ? host : ""; puttyProcess.StartInfo.Arguments += port != "" ? " " + port : ""; puttyProcess.StartInfo.Arguments += serverElement.Username != "" && serverElement.Password != "" ? " -pw \"" + OtherHelper.ReplaceA(passs, passr, serverElement.Password) + "\"" : ""; puttyProcess.StartInfo.Arguments += Settings.Default.puttyexecute && Settings.Default.puttycommand != "" ? " -m \"" + Settings.Default.puttycommand + "\"" : ""; puttyProcess.StartInfo.Arguments += Settings.Default.puttykey && Settings.Default.puttykeyfile != "" ? " -i \"" + Settings.Default.puttykeyfile + "\"" : ""; puttyProcess.StartInfo.Arguments += Settings.Default.puttyforward ? " -X" : ""; puttyProcess.StartInfo.Arguments += puttyArgs != "" ? " " + puttyArgs + "@" : ""; puttyProcess.Start(); } } else { if (MessageBox.Show(Resources.connectionHelper_LaunchVnc_M1 + puttyPath + Resources.connectionHelper_LaunchVnc_M2, Resources.connectionHelper_LaunchVnc_Error, MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.OK) { formMain.optionsForm.bPuTTYPath_Click(); } } }
/// <summary> /// get all data from xml config /// </summary> /// <returns>arraylist with groupelement</returns> public ArrayList getAllData() { if (!File.Exists(Settings.Default.cfgpath)) { return(new ArrayList()); } XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(Settings.Default.cfgpath); ArrayList groups = new ArrayList(); XmlNodeList groupNodes = xmlDocument.SelectNodes("//*[@GroupName]"); if (groupNodes != null) { if (groupNodes.Count > 0) { foreach (XmlElement groupNode in groupNodes) { string groupName = groupNode.GetAttribute("GroupName"); string groupDefaulHostname = ""; string groupDefaultPort = ""; string groupDefaultUsername = ""; string groupDefaultPassword = ""; ArrayList servers = new ArrayList(); foreach (XmlElement childNode in groupNode.ChildNodes) { switch (childNode.Name) { case "DefaultHost": groupDefaulHostname = CryptHelper.Decrypt(childNode.InnerText); break; case "DefaultPort": groupDefaultPort = CryptHelper.Decrypt(childNode.InnerText); break; case "DefaultUsername": groupDefaultUsername = CryptHelper.Decrypt(childNode.InnerText); break; case "DefaultPassword": groupDefaultPassword = CryptHelper.Decrypt(childNode.InnerText); break; case "Server": string serverName = childNode.GetAttribute("Name").Trim(); string serverHost = ""; string serverPort = ""; string serverUsername = ""; string serverPassword = ""; string serverType = ""; bool serverChecks = false; Guid id = Guid.Empty; foreach (XmlElement serverElement in childNode.ChildNodes) { switch (serverElement.Name) { case "Host": serverHost = CryptHelper.Decrypt(serverElement.InnerText); break; case "Port": serverPort = CryptHelper.Decrypt(serverElement.InnerText); break; case "Username": serverUsername = CryptHelper.Decrypt(serverElement.InnerText); break; case "Password": serverPassword = CryptHelper.Decrypt(serverElement.InnerText); break; case "Type": serverType = CryptHelper.Decrypt(serverElement.InnerText); break; case "Checks": serverChecks = Boolean.Parse(serverElement.InnerText); break; case "Id": Guid.TryParse(serverElement.InnerText, out id); break; } } var server = new ServerElement(serverName, serverHost, serverPort, serverUsername, serverPassword, serverType, serverChecks); server.Id = id; servers.Add(server); break; } } groups.Add(new GroupElement(groupName, groupDefaulHostname, groupDefaultPort, groupDefaultUsername, groupDefaultPassword, servers)); } } else { return(new ArrayList()); } } return(groups); }
public ModifyServerForm() { InitializeComponent(); ServerElement = new ServerElement(); _presenter = new ModifyServerPresenter(this); }
/// <summary> /// Method for launch user VNC client like a TinyVNC, UltraVNC or ReadlVNC /// </summary> /// <param name="serverElement">Current selected server from Tree View</param> private static void LaunchVnc(ServerElement serverElement) { string[] vncExtractPath = ExtractFilePath(Settings.Default.vncpath); string vncPath = Environment.ExpandEnvironmentVariables(vncExtractPath[0]); string vncArgs = vncExtractPath[1]; if (File.Exists(vncPath)) { string host = serverElement.Host; string port = serverElement.Port != "" ? serverElement.Port : "5900"; _vncOutPath = ""; if (Settings.Default.vncfilespath != "" && OtherHelper.ReplaceA(ps, pr, Settings.Default.vncfilespath) != "\\") { _vncOutPath = OtherHelper.ReplaceA(ps, pr, Settings.Default.vncfilespath + "\\"); if (!Directory.Exists(_vncOutPath)) { Directory.CreateDirectory(_vncOutPath); } } TextWriter vncFile = new StreamWriter(_vncOutPath + OtherHelper.ReplaceU(f, serverElement.Name) + ".vnc"); vncFile.WriteLine("[Connection]"); vncFile.WriteLine(host != "" ? "host=" + host : ""); vncFile.WriteLine(port != "" ? "port=" + port : ""); vncFile.WriteLine(serverElement.Username != "" ? "username="******""); vncFile.WriteLine(serverElement.Password != "" ? "password="******""); vncFile.WriteLine("[Options]"); vncFile.WriteLine(Settings.Default.vncfullscreen ? "fullscreen=1" : ""); vncFile.WriteLine(Settings.Default.vncviewonly ? "viewonly=1" : ""); vncFile.WriteLine(Settings.Default.vncviewonly ? "sendptrevents=0" : ""); vncFile.WriteLine(Settings.Default.vncviewonly ? "sendkeyevents=0" : ""); vncFile.WriteLine(Settings.Default.vncviewonly ? "sendcuttext=0" : ""); vncFile.WriteLine(Settings.Default.vncviewonly ? "acceptcuttext=0" : ""); vncFile.WriteLine(Settings.Default.vncviewonly ? "sharefiles=0" : ""); vncFile.WriteLine(serverElement.Password != "" && serverElement.Password.Length > 8 ? "protocol3.3=1" : ""); // f****n vnc 4.0 auth vncFile.Close(); Process myProc = new Process { StartInfo = { FileName = Settings.Default.vncpath, Arguments = "-config \"" + _vncOutPath + OtherHelper.ReplaceU(f, serverElement.Name) + ".vnc\"" + (vncArgs != "" ? " " + vncArgs : "") } }; myProc.Start(); } else { if (MessageBox.Show(Resources.connectionHelper_LaunchVnc_M1 + vncPath + Resources.connectionHelper_LaunchVnc_M2, Resources.connectionHelper_LaunchVnc_Error, MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.OK) { formMain.optionsForm.bVNCPath_Click(); } } }
/// <summary> /// Method for launch default RDP client (mstcs.exe) /// </summary> /// <param name="serverElement">Server data for launching</param> private static void LaunchRdp(ServerElement serverElement, XmlHelper xmlHelper) { string[] rdpExtractFilePath = ExtractFilePath(Settings.Default.rdpath); string rdpPath = Environment.ExpandEnvironmentVariables(rdpExtractFilePath[0]); string rdpLaunchArgs = rdpExtractFilePath[1]; if (File.Exists(rdpPath)) { var size = xmlHelper.configGet(serverElement.Id + "_rdsize"); if (string.IsNullOrEmpty(size)) { size = Settings.Default.rdsize; } string[] sizes = size.Split('x'); _rdpOutPath = ""; if (Settings.Default.rdfilespath != "" && OtherHelper.ReplaceA(ps, pr, Settings.Default.rdfilespath) != "\\") { _rdpOutPath = OtherHelper.ReplaceA(ps, pr, Settings.Default.rdfilespath + "\\"); //TODO: add try for exception if (!Directory.Exists(_rdpOutPath)) { Directory.CreateDirectory(_rdpOutPath); } } var rddrives = Settings.Default.rddrives; bool.TryParse(xmlHelper.configGet(serverElement.Id + "_rddrives"), out rddrives); var rdadmin = Settings.Default.rdadmin; bool.TryParse(xmlHelper.configGet(serverElement.Id + "_rdadmin"), out rdadmin); var rdspan = Settings.Default.rdspan; bool.TryParse(xmlHelper.configGet(serverElement.Id + "_rdspan"), out rdspan); TextWriter rdpFileWriter = new StreamWriter(path: _rdpOutPath + OtherHelper.ReplaceU(f, serverElement.Name) + ".rdp"); //TODO: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated rdpFileWriter.WriteLine(size == "Full screen" ? "screen mode id:i:2" : "screen mode id:i:1"); rdpFileWriter.WriteLine(sizes.Length == 2 ? "desktopwidth:i:" + sizes[0] : ""); rdpFileWriter.WriteLine(sizes.Length == 2 ? "desktopheight:i:" + sizes[1] : ""); rdpFileWriter.WriteLine(serverElement.HostWithPort != "" ? "full address:s:" + serverElement.HostWithPort : ""); rdpFileWriter.WriteLine(serverElement.Username != "" ? "username:s:" + serverElement.Username : ""); rdpFileWriter.WriteLine(serverElement.Username != "" && serverElement.Password != "" ? "password 51:b:" + CryptHelper.encryptpw(serverElement.Password) : ""); rdpFileWriter.WriteLine(rddrives ? "redirectdrives:i:1" : ""); rdpFileWriter.WriteLine(rdadmin ? "administrative session:i:1" : ""); rdpFileWriter.WriteLine(rdspan ? "use multimon:i:1" : ""); rdpFileWriter.Close(); Process myProc = new Process { StartInfo = { FileName = rdpPath, Arguments = "\"" + _rdpOutPath + OtherHelper.ReplaceU(f,serverElement.Name) + ".rdp\"" + (rdpLaunchArgs != null ? " " + rdpLaunchArgs : ""), } }; myProc.Start(); } else { if (MessageBox.Show(Resources.connectionHelper_LaunchVnc_M1 + rdpPath + Resources.connectionHelper_LaunchVnc_M2, Resources.connectionHelper_LaunchVnc_Error, MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.OK) { formMain.optionsForm.bRDPath_Click(); } } }
/// <summary> /// Get server data by group and server name /// </summary> /// <param name="groupName">group name</param> /// <param name="serverName">server name</param> /// <returns></returns> public static ServerElement getServerByName(string groupName, string serverName) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(Settings.Default.cfgpath); XmlNode xmlGroup = xmlDocument.SelectSingleNode("//*[@GroupName='" + groupName + "']"); if (xmlGroup != null) { foreach (XmlElement xmlElement in xmlGroup) { switch (xmlElement.Name) { case "Server": string foundedServerName = xmlElement.GetAttribute("Name"); if (!foundedServerName.Equals(serverName)) { continue; } string serverHost = ""; string serverPort = ""; string serverUsername = ""; string serverPassword = ""; string serverType = ""; bool serverChecks = false; Guid id = Guid.Empty; foreach (XmlElement serverElements in xmlElement.ChildNodes) { switch (serverElements.Name) { case "Host": serverHost = CryptHelper.Decrypt(serverElements.InnerText); break; case "Port": serverPort = CryptHelper.Decrypt(serverElements.InnerText); break; case "Username": serverUsername = CryptHelper.Decrypt(serverElements.InnerText); break; case "Password": serverPassword = CryptHelper.Decrypt(serverElements.InnerText); break; case "Type": serverType = CryptHelper.Decrypt(serverElements.InnerText); break; case "Checks": serverChecks = Boolean.Parse(serverElements.InnerText); break; case "Id": Guid.TryParse(serverElements.InnerText, out id); break; } } ServerElement currentServer = new ServerElement(foundedServerName, serverHost, serverPort, serverUsername, serverPassword, serverType, serverChecks); currentServer.Id = id; return(currentServer); } } } //TODO: Fix return null return(null); }
/// <summary> /// modify all server data by group name and old server name /// </summary> /// <param name="groupName">group name</param> /// <param name="oldServerName">old server name</param> /// <param name="serverElement">new server data</param> public void modifyServer(string groupName, string oldServerName, ServerElement serverElement) { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Settings.Default.cfgpath); XmlNode xmlGroup = xmldoc.SelectSingleNode("//*[@GroupName='" + groupName + "']"); if (xmlGroup != null) { foreach (XmlElement xmlElement in xmlGroup) { switch (xmlElement.Name) { case "Server": string foundedServerName = xmlElement.GetAttribute("Name"); if (!foundedServerName.Equals(oldServerName)) { continue; } xmlElement.Attributes["Name"].Value = serverElement.Name; bool existHost = false; bool existPort = false; bool existUsername = false; bool existPassword = false; bool existChecks = false; foreach (XmlElement subElements in xmlElement.ChildNodes) { switch (subElements.Name) { case "Host": subElements.InnerText = CryptHelper.Encrypt(serverElement.Host); existHost = true; break; case "Port": subElements.InnerText = CryptHelper.Encrypt(serverElement.Port); existPort = true; break; case "Username": subElements.InnerText = CryptHelper.Encrypt(serverElement.Username); existUsername = true; break; case "Password": subElements.InnerText = CryptHelper.Encrypt(serverElement.Password); existPassword = true; break; case "Type": subElements.InnerText = CryptHelper.Encrypt(((int)serverElement.Type).ToString()); break; case "Checks": subElements.InnerText = serverElement.AutoChecks.ToString(); existChecks = true; break; } } if (!existHost) { XmlElement newElement = xmldoc.CreateElement("Host"); newElement.InnerText = CryptHelper.Encrypt(serverElement.Host); xmlElement.AppendChild(newElement); } if (!existPort) { XmlElement newElement = xmldoc.CreateElement("Port"); newElement.InnerText = CryptHelper.Encrypt(serverElement.Port); xmlElement.AppendChild(newElement); } if (!existUsername) { XmlElement newElement = xmldoc.CreateElement("Username"); newElement.InnerText = CryptHelper.Encrypt(serverElement.Username); xmlElement.AppendChild(newElement); } if (!existPassword) { XmlElement newElement = xmldoc.CreateElement("Password"); newElement.InnerText = CryptHelper.Encrypt(serverElement.Password); xmlElement.AppendChild(newElement); } if (!existChecks) { XmlElement newElement = xmldoc.CreateElement("Checks"); newElement.InnerText = serverElement.AutoChecks.ToString(); xmlElement.AppendChild(newElement); } break; } try { xmldoc.Save(Settings.Default.cfgpath); } catch (UnauthorizedAccessException) { OtherHelper.Error( "Could not write to configuration file :'(\rModifications will not be saved\rPlease check your user permissions."); } } } }
/// <summary> /// Start connection method /// В зависимости от переданного типа запускает нужный софт /// </summary> /// <param name="selectedNode">Current selected node from Tree View</param> public static void StartConnect(TreeNode selectedNode, XmlHelper xmlHelper) { Environment.CurrentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? throw new InvalidOperationException(); if (selectedNode?.Parent == null) { return; } _currentGroup = selectedNode.Parent.Text; _currentServer = selectedNode.Text; ServerElement serverElement = XmlHelper.getServerByName(_currentGroup, _currentServer); if (serverElement == null) { return; } string plinkCommand = ""; if (serverElement.Type == ConnectionType.Plink) { plinkCommand = XmlHelper.getServerParamByServerId(_currentGroup, _currentServer, "plinkCommand"); if (plinkCommand == "") { InputBoxItem[] items = new InputBoxItem[] { new InputBoxItem("Command") }; InputBox input = InputBox.Show("Enter new Plink command", items, InputBoxButtons.OKCancel); if (input.Result == InputBoxResult.OK) { plinkCommand = input.Items["Command"]; XmlHelper.setServerParamByServerId(_currentGroup, _currentServer, "plinkCommand", input.Items["Command"]); } else { return; } } } switch (serverElement.Type) { case ConnectionType.Rdp: //RDP LaunchRdp(serverElement, xmlHelper); break; case ConnectionType.Vnc: //VNC LaunchVnc(serverElement); break; case ConnectionType.Scp: //WinSCP (SCP) LaunchWinScp("scp://", serverElement); break; case ConnectionType.Sftp: //WinSCP (SFTP) LaunchWinScp("sftp://", serverElement); break; case ConnectionType.Ftp: //WinSCP (FTP) LaunchWinScp("ftp://", serverElement); break; case ConnectionType.Telnet: LaunchTelnet(serverElement); break; case ConnectionType.Plink: LaunchPlink(serverElement, plinkCommand); break; case ConnectionType.AmmyAdmin: LaunchAmmyAdmin(serverElement, xmlHelper); break; case ConnectionType.RAdmin: LaunchRAdmin(serverElement, xmlHelper); break; case ConnectionType.TeamViewer: LaunchTeamViewer(serverElement, xmlHelper); break; default: LaunchPuTTy(serverElement); break; } }