Эмулировать терминальные услуги - PullRequest
3 голосов
/ 16 марта 2010

Я опытный разработчик Delphi и хотел бы создать что-то вроде бесшовных терминальных служб, где приложение выполняется на сервере, но появляется на рабочем столе клиента.

Кому-то, работающему на сервере, я не хочу, чтобы они видели запущенное удаленное приложение (кроме случаев, когда они смотрели список запущенных процессов).

Я заблудился о том, как это сделать, с чего начать, как заставить приложение отображаться на поверхности, отличной от рабочего стола сервера.

Любые предложения будут наиболее признательны.

Ответы [ 2 ]

3 голосов
/ 16 марта 2010

Начиная с 2008 года службы терминалов (которые были переименованы в службы удаленных рабочих столов) предлагают RemoteApps, которые выполняют именно то, что вы описываете. Citrix (XenApp) может делать это на всех версиях Windows (сервер). Поэтому, возможно, вы захотите взглянуть на эти продукты, прежде чем сами решите воссоздать их.

Если вы решите продолжить, эта ссылка может быть интересной, это пример проекта под названием «Расширение клиента служб терминалов Microsoft для обеспечения бесперебойной работы Windows»

1 голос
/ 16 марта 2010

Из того, что вы описываете, я бы сказал, что вам следует подумать о написании службы Windows (не терминальных служб) и использовании системы межпроцессного взаимодействия (IPC) для передачи информации о состоянии в «клиентское» приложение, которое может быть запущен соответствующим пользователем на той же машине или другом по сети.

Я сам делаю это, используя RemObjects SDK , который заставляет мое клиентское приложение выглядеть так, будто оно просто выполняет вызовы функций, но на самом деле они отправляются на сервер, который их реализует. Затем сервер может выполнить свою работу в одном (или более) потоке, и весь пользовательский интерфейс выполняется в клиенте, который определяет, что отображать, используя канал IPC.

...