Запуск собственного исполняемого файла win32 с общедоступного веб-сайта. - PullRequest
3 голосов
/ 02 октября 2009

Мне предложили архитектурный вызов, и я ищу идеи.

У клиента есть собственное приложение win32, которое довольно устойчиво к изменениям любым, кроме тривиальных способов. Он написан на неуправляемом c ++ и использует как минимум один сторонний dll, поэтому он не является отдельным exe-файлом. То, что это не имеет большого значения, думайте об этом как о средстве поддержки клиентов. В идеале клиент хочет запустить его с веб-сайта, а не публиковать его как устанавливаемую программу. Кроме того, клиент должен передать токен исполняемому файлу при выполнении, чтобы он мог позвонить домой и запросить дополнительные инструкции.

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

Проблемы безопасности, связанные с вредоносными программами, шпионскими программами, троянами и т. П., Делают эту модель распространения маловероятной. У меня больше опыта в том, чтобы не делать это, чем найти законный способ сделать это.

Любые идеи (положительные или отрицательные) приветствуются.

Ответы [ 4 ]

2 голосов
/ 02 октября 2009

Убедите клиента разрешить вашей компании устранить недостатки оригинального дизайна, скорее всего, за ваш счет. Принести извинения. A LOT .

1 голос
/ 02 октября 2009

Я не могу посоветовать запустить приложение, установленное на ПК пользователя. Так что, может быть, кто-то предложит совет по этому поводу.

Однако существует альтернативное решение для установки приложения на ваш сервер. Затем вы можете написать некоторый код, который может получить доступ к данным и отображать их через HTML. В идеале это было бы легко достижимо с помощью привилегированных API, веб-сервисов и других dohickeys. Но я думаю, что это не потенциальное решение?

Другой вариант - это продукт, аналогичный некоторым интеграционным продуктам NDL MetaScype .

Их продукт, по сути, является программным обеспечением для скрининга экрана, которое в основном открывает приложение и запускает макрос для всех целей. Преимущество этого в том, что вся бизнес-логика сохраняется (т. Е. Вы эффективно вводите данные в поле, и если это поле возвращается с ошибкой в ​​системе - ваше веб-приложение также должно это выяснить.

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

0 голосов
/ 03 октября 2009

Я не совсем уверен, что понимаю ситуацию, но похоже, что одним из вариантов может быть запуск приложения на сервере, а затем использование Citrix, чтобы позволить клиентским ПК получать доступ к приложению, как тонкие клиенты. Мой университет делает это с помощью ряда программ (например, Photoshop). Я не могу получить доступ к приложению, чтобы установить его, но я могу загрузить небольшой файл, который запускает Citrix и запускает приложение. Приложение всегда имеет элементы управления в стиле Windows, хотя я использую Mac. Конечно, мне все еще приходилось устанавливать Citrix, так что, возможно, нет смысла идти по этому пути, но это может быть более простой компромисс, чем некоторые другие ваши варианты.

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

Пожалуйста, уточните, подсказывают ли мои ответы, что я не понимаю проблему. Мне очень любопытно узнать больше о ситуации.

0 голосов
/ 02 октября 2009

Вы можете попробовать создать элемент управления ActiveX, который загрузит ваш исполняемый файл и запустит его, но это, к сожалению, ограничивает вас IE. Это также создает дополнительный шаг установки / запуска для элемента управления на веб-странице. Это может быть неприемлемо для некоторых ваших клиентов, если у них есть политика в отношении пользователей, загружающих и использующих элементы управления ActiveX.

Вы также можете попробовать упаковать исполняемый файл и его зависимости как ресурс в другой исполняемый файл. Пользователь может загрузить и запустить его с веб-страницы, которая извлекает исполняемый файл и зависимости и запускает их. Это может быть немного более прямым, чем маршрут ActiveX, но может иметь некоторые те же ограничения в отношении политик безопасности.

К сожалению, вы не найдете простого решения этой проблемы - запуск произвольного нативного кода с веб-сайта затруднен.

...