我一直在尝试解决这个问题,但是还无法弄清楚...... 我正在为工作创建一个应用程序,实质上将我们所有的工具编译成一个更易于使用的GUI。我们使用的其中一项工具是来自第三方的东西,通过RDWeb作为远程应用程序进行托管。现在我也有常规的远程桌面访问权限,我可以使用MSTSC和该过程通过我的Winform访问桌面,这非常好用。我想知道是否可能仅在MSTSC控件中加载RemoteAPP而不是整个桌面,以便我的用户无法访问完整的桌面。或者是否还有其他方法在Winforms中仅托管RemoteAPP。
我已经查看了MSDN关于ITSRemoteProgram的文档,但是当我尝试以下操作时,它会抛出异常。调试器停止在rdp.RemoteProgram.RemoteProgramMode = true;
并返回HRESULT E_FAIL异常。
我还尝试在OnConnected事件触发后使用remoteprogram
,但结果相同。
try
{
rdp.Server = "FFWIN2008R2DC.fflab123.net";
rdp.Domain = "fflab123";
rdp.UserName = "administrator";
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = "password123";
rdp.OnConnected += rdp_OnConnected;
rdp.RemoteProgram.RemoteProgramMode = true;
rdp.RemoteProgram2.RemoteApplicationName = "Calculator";
rdp.RemoteProgram2.RemoteApplicationProgram = @"C:\Windows\system32\calc.exe";
rdp.Connect();
}
catch (Exception Ex)
{
MessageBox.Show("Error Connecting", "Error connecting to remote desktop " + " Error: " + Ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
也许我正在错误的方向上思考,或者也许这根本不可能。我只想在正确的方向上获得一点指引,我并不需要任何人为我写作。