c# - 如何通过 C# 最小化远程桌面连接 (RDC) 窗口?
问题描述
下面的一段代码让我通过 mstsc.exe 与计算机建立远程桌面连接。
string ipAddress = "XXX.XX.XXX.XXX" // IP Address of other machine
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = "mstsc.exe";
proc.StartInfo.Arguments = "/v:" + ipAddress ;
proc.Start();
一旦成功启动,我想最小化 RDC 窗口(镜像窗口)。有什么方法可以通过 C# 来实现吗?
这是我尝试过的,但没有区别:
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
任何帮助都感激不尽。
解决方案
您可以使用 中的ShowWindow
功能user32.dll
。将以下导入添加到您的程序中。您将需要参考using System.Runtime.InteropServices;
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
您已经必须启动 RDP 的内容将照常工作,但随后您将需要获取mstsc
在远程桌面打开后创建的新进程。您开始的原始进程在proc.Start()
. 使用下面的代码将为您提供第一个mstsc
过程。注意:如果您打开了多个 RDP 窗口,您应该选择比只选择第一个更好的选择。
Process process = Process.GetProcessesByName("mstsc").First();
然后调用ShowWindow
如下所示的方法SW_MINIMIZE = 6
ShowWindow(process.MainWindowHandle, SW_MINIMIZE);
完整的解决方案变为:
private const int SW_MAXIMIZE = 3;
private const int SW_MINIMIZE = 6;
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
static void Main(string[] args) {
string ipAddress = "xxx.xxx.xxx.xxx";
Process proc = new Process();
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = "mstsc.exe";
proc.StartInfo.Arguments = "/v:" + ipAddress ;
proc.Start();
// NOTE: add some kind of delay to wait for the new process to be created.
Process process = Process.GetProcessesByName("mstsc").First();
ShowWindow(process.MainWindowHandle, SW_MINIMIZE);
}
注意:@Sergio 的回答将起作用,但它将最小化创建的初始过程。如果您需要输入凭据,我认为这不是正确的方法。
推荐阅读
- php - 在站点地图页面的顶部获取奇怪的十六进制代码
- javascript - 如何在 Vue.js 中传递 $router.push 中的数组?
- arrays - 在循环内将数组转换为二维数组
- wordpress - 文本滑块 wordpress 网站。有任何插件
- laravel - Laravel 长时间运行的队列作业由第二个工人挑选
- firebase - Firebase 总是从互联网上读取数据
- azure - AMLS 计算:VM 上的笔记本电脑
- laravel - Laravel Socialite Providers GOOGLE ERROR Legacy People API 尚未在项目中使用
- python - Jira Python 自定义字段
- regex - 删除 Wordpress URL 上的问号