.Net: Как запустить локальное приложение через приложение удаленного рабочего стола - PullRequest
1 голос
/ 16 марта 2012

это мой сценарий:

  • ERP (Axapta 2009) установлен на сервере терминалов, работает для пользователя через удаленный рабочий стол

мне нужно разрешить пользователю нажиматьНажмите кнопку Ax и запустите локальное приложение (скажем, Outlook) .. не удаленно, а с компьютера пользователя.

Axapta позволяет использовать код .Net (например, ProcessInfo) для запуска внешнего процесса / приложения.

Но я думаю, что проблема в том, чтобы запустить локальное приложение через RDP.Является ли это возможным ?Спасибо

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Я в целом согласен с Дэмиеном, но я хотел найти еще один возможный «хакерский» способ осуществления внеполосной связи между локальным клиентом, подключенным через удаленный рабочий стол (RD) к удаленному хосту, и это буфер обмена , Одной из особенностей RD является то, что он синхронизирует буфер обмена между удаленным и локальным хостом, что позволяет пользователю копировать-вставлять через границы компьютера.

Тот факт, что вы можете программно устанавливать содержимое буфера обмена на сервере и что вы можете настроить прослушиватель буфера обмена на клиенте (чтобы получать уведомления об изменении буфера обмена), позволит вам осуществлять простую связь через RD. Я успешно использовал эту технику, при которой клиент telnet помещал что-то в буфер обмена, а мое приложение на C # прослушивало это и запускало приложение, когда в буфер обмена помещалась определенная магическая строка.

Настройка буфера обмена может быть сделана непосредственно в .NET, а стать слушателем буфера обмена также можно сделать через .NET, P / Invoke-ing SetClipboardViewer и несколько других Win32 API.

2 голосов
/ 16 марта 2012

Нет никакого простого способа, о котором я знаю, ни какого-либо управляемого способа либо.

API, который вас заинтересует, будет Виртуальные каналы службы удаленного рабочего стола :

Приложение виртуального канала состоит из двух частей: клиентского модуля и серверного модуля. Серверный модуль - это исполняемая программа, работающая на сервере Узел сеансов удаленных рабочих столов. Клиентский модуль - это библиотека DLL, которая должна загружаться в память на клиентском компьютере при запуске клиентской программы подключения к удаленному рабочему столу (RDC).

Затем вы будете использовать стандартную межпроцессную сигнализацию для связи с серверным модулем, чтобы переслать команду «запуск» клиентскому модулю, который затем в конечном итоге запустит «локальное» приложение.

Если честно, я бы не подумал, что оно того стоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...