【发布时间】:2021-12-02 12:28:23
【问题描述】:
我想用 c# 构建我自己的 Rdp 程序。这就是为什么我制作了一个登录页面屏幕并从用户那里获取登录输入。之后为了启动 rdp 进程,我使用了这段代码。
Process rdcProcess = new Process();
rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
rdcProcess.StartInfo.Arguments = $"/generic:TERMSRV/{ipaddressbox.Text} /user: {usernamebox.Text} /pass: {passwordbox.Text}";
rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
rdcProcess.StartInfo.Arguments = $"/v {ipaddressbox.Text}"; // ip or name of computer to connect
rdcProcess.Start();
当我使用我的用户信息登录时,会打开一个表单,并且 rdp 程序可以正常运行。但是,当我关闭该表单屏幕时,远程桌面连接并没有结束,它继续在后台工作。我的要求是,当我关闭表单时,远程桌面连接断开并终止 rdp 进程。我怎样才能做到这一点?
【问题讨论】:
-
要终止进程,您可以使用
Process.GetProcessesByName("rdp...").FirstOrDefault().Kill();我不确定是否可以正常断开 RDP。 -
你是对的,但我想以编程方式进行,我的意思是当表单关闭时应该发生进程终止
-
tsdiscon sessionid和LOGOFF sessionid似乎有效。见:sourcedaddy.com/windows-7/disconnecting-sessions.html -
我会试试的,非常感谢