2011-10-05 77 views
2

我正在通过MSTSCLib编写应用程序来控制4台带有Windows 7或Windows 2008 Server的计算机。C#中的RDP控制台阴影#

这是我的应用程序: enter image description here

public AxMSTSCLib.AxMsRdpClient6 rdp; 

rdp.Server = txtServer.Text; 
rdp.UserName = txtUserName.Text; 

IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx(); 
secured.ClearTextPassword = txtPassword.Text; 

rdp.DesktopHeight = 1024; 
rdp.DesktopWidth = 1280; 
rdp.Connect(); 

这4台电脑,控制4发电机。

我需要通过办公室计算机进行控制并保持活动状态,以便任何人都可以物理地和远程地使用这些计算机。我的意思是,如果我远程移动鼠标,身体在电脑中的人看到鼠标移动。

我目前的情况是,我的应用程序连接到远程机器,但阻止会话给另一个人。 (该会话已被阻止,请按CTRL + ALT-DEL)

搜索Google时,我认为我需要的是一个名为“远程会话遮蔽”的东西。它是否正确?

我怎么能这样做C#

我找到了interesting information here,可以用MSTSCLib来完成吗?

+0

VNC的+1,但什么是与C#的连接?你需要什么来自动化? –

+0

为了以防万一,你用什么为UI(DevExpress,Telerik,ComponentOne ...)? – Burimi

+0

@Cody:DevComponents DotNetBar :) –

回答

3

我可以驾驶从RDP离开,并与一些开源的解决方案,如TightVNC的去,请查看:

http://www.tightvnc.com/licensing.php

VNC具有设计您所需的功能。

+0

RDP可以完成这项工作。请列出一些论点为什么你不会使用它。听起来很像个人喜好。 – UrbanEsc

+0

谢谢!我已经用VNCSharp开始了我的项目,但是VNC非常慢。这种情况下RDP比VNC快:( –

+0

UrbanEsc:我试过AirVNC和许多VNC应用程序将屏幕拆分为4或6以同时控制这些计算机,但VNC使用大量内存(大约150MB的Ram每台计算机与3〜4MB Ram与RDP),VNC很慢并且关闭很多次.RDP非常棒,快速,轻量级和稳定。我还需要通过鼠标悬停来获得任何计算机的重点,我可以使用RDP这很容易啊!VNCSharp在调整大小时崩溃。 –

0

不幸的是,似乎不再可能与RDP“共享”会话,很可能是因为许可共享的预防措施。

这意味着无法将“正在运行的会话”(已登录的用户)登录而不登录另一个会话。

这是可能在XP中,但它与7(我猜服务器2008也是)。

您可能需要查看Windows远程协助,因为这是操作系统内置的唯一可用选项。

除了VNC,您还可以查看TeamViewer,我听说这很好用。我不确定是否有可用的API。

+0

这是可能的。只需从cmd:mstsc -v:servername -console运行,然后使用Shadow 0.但是我想用C#执行此操作# –

+0

我认为如此看你的截图。正如我所说的,如果你想要特定的功能,你需要切换齿轮。 – UrbanEsc