使用C# Winforms自动化mRemoteNG实现自定义标题的远程桌面调用
方案1:使用mRemoteNG内置单连接命令行参数(最优解,无需生成配置文件)
mRemoteNG本身支持不依赖预先生成的connections.xml配置文件,直接通过命令行透传所有连接参数,完全不需要处理加密逻辑,即可启动带自定义标题的远程桌面窗口。
可直接使用的命令行格式如下:mRemoteNG.exe /t "自定义机器名称" /c RDP /s "远程主机IP" /u "登录用户名" /p "登录密码"
各参数说明:
/t:指定远程桌面窗口显示的标题,即你需要展示的机器名/c:指定连接类型,固定传RDP即可/s:远程主机的IP地址/域名/u:远程桌面登录用户名/p:远程桌面登录密码
C# 调用示例代码:
using System.Diagnostics; // 替换为你本地mRemoteNG的实际安装路径 string mRemoteNGExePath = @"C:\Program Files\mRemoteNG\mRemoteNG.exe"; string customTitle = "业务服务器-上海节点01"; string serverIp = "192.168.3.25"; string userName = "administrator"; string password = "你存储的密码"; string startArgs = $"/t \"{customTitle}\" /c RDP /s \"{serverIp}\" /u \"{userName}\" /p \"{password}\""; Process.Start(mRemoteNGExePath, startArgs);
该方案完全符合无用户交互的需求,不需要处理xml配置和加密逻辑,一步即可实现需求。
方案2:生成官方标准connections.xml配置文件(适合批量启动多连接场景)
如果需要一次性启动多个远程桌面连接,可以直接引用mRemoteNG官方类库生成配置文件,不需要自己破解加密逻辑:
- 从本地mRemoteNG安装目录中找到
mRemoteNG.dll,添加为你的C#项目引用 - 直接使用类库内置的连接对象构造连接,调用官方序列化方法导出xml即可,所有密码加密逻辑由原生类库自动处理。
示例代码:
using System.Diagnostics; using System.IO; using mRemoteNG.Connection; using mRemoteNG.Config.Serializers; // 构造单条连接配置 var rdpConn = new ConnectionInfo { Name = "自定义机器名", Hostname = "192.168.3.25", Username = "administrator", Password = "你存储的密码", Protocol = ProtocolType.RDP }; // 导出为标准connections.xml var xmlSerializer = new XmlConnectionsSerializer(); string xmlContent = xmlSerializer.Serialize(new[] { rdpConn }); string xmlPath = Path.Combine(Path.GetTempPath(), "temp_rdp_connections.xml"); File.WriteAllText(xmlPath, xmlContent); // 启动mRemoteNG加载配置文件 Process.Start(mRemoteNGExePath, $"\"{xmlPath}\"");
备选方案:直接修改原生远程桌面窗口标题(无需依赖mRemoteNG)
如果不想额外引入mRemoteNG依赖,也可以基于你现有的mstsc调用逻辑,通过Windows API直接修改远程桌面窗口标题:
- 启动mstsc进程后,等待窗口加载完成
- 调用Windows API
FindWindow匹配窗口标题为目标IP的远程桌面窗口 - 调用
SetWindowTextAPI直接将窗口标题修改为你要的机器名即可,实现逻辑更轻量。
内容的提问来源于stack exchange,提问作者Amit Verma
相关产品推荐
相关产品推荐

