Программный запуск RemoteApp без системного вызова mstsc

У меня есть файл RDP, который успешно запускает RemoteApp.

remoteapplicationmode:i:1
remoteapplicationprogram:s:||application
remoteapplicationname:s:application.exe
remoteapplicationcmdline:s:
authentication level:i:2
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:1
gatewaycredentialssource:i:0
full address:s:aaa.bbb.ccc.com

Я попытался скопировать его настройки в свои объекты С#:

AxMsRdpClient7NotSafeForScripting rc = new AxMsRdpClient7NotSafeForScripting();
rc.OnConnected += (_1, _2) => { rc.RemoteProgram2.ServerStartProgram("application.exe", "", "%HOMEDRIVE%" + "%HOMEPATH%", true, "", true); };
rc.RemoteProgram2.RemoteProgramMode = true;
rc.RemoteProgram2.RemoteApplicationProgram = "||application";
rc.RemoteProgram2.RemoteApplicationName = "application.exe";
rc.TransportSettings.GatewayUsageMethod = 1;
rc.TransportSettings.GatewayProfileUsageMethod = 1;
rc.TransportSettings.GatewayCredsSource = 0; 
rc.Server = "aaa.bbb.ccc.com";
rc.UserName = "DOMAIN\\user";
rc.AdvancedSettings7.PublicMode = false;
rc.AdvancedSettings7.ClearTextPassword = "pass";
rc.AdvancedSettings7.AuthenticationLevel = 2;
rc.DesktopWidth = SystemInformation.VirtualScreen.Width;
rc.DesktopHeight = SystemInformation.VirtualScreen.Height;
rc.AdvancedSettings7.SmartSizing = true;
rc.Connect();

Я искал везде, но не смог найти ни одного примера того, как запускать RemoteApp программно.

Я покрасил эту страницу, но это не очень помогло. Клиент (элемент управления COM) успешно подключается, но просто отображает синий экран, а приложение RemoteApp не запускается.

Кроме того, я не уверен, что это правильный метод запуска rc.RemoteProgram2.ServerStartProgram, потому что он принимает пути в качестве аргументов, а в моем файле RDP пути нет!

Может кто-нибудь помочь мне? Я использую правильные объекты, чтобы делать то, что я хочу?

Сервер работает под управлением Windows Server 2008R2.


person Paolo M    schedule 04.04.2014    source источник


Ответы (1)


Если все, что вы хотите сделать, это прагматично запустить RemoteApp, для которого у вас уже есть файл rdp, просто запустите его как процесс:

System.Diagnostics.Process.Start(@"C:\Path_To_Rdp_File.rdp");
person Ashigore    schedule 04.04.2014
comment
Это то же самое, что запуск mstsc... Я хочу запустить удаленное приложение как объект своего приложения. - person Paolo M; 07.04.2014