У меня есть настольное приложение, которое можно установить на компьютер пользователя с помощью «setup» msi-файла, как и любое другое приложение.
Я разрабатываю веб-приложение, и мне нужно как-то интегрировать настольное приложение с веб-приложением. Веб-приложение разрабатывается с использованием PHP (настольное приложение разрабатывается с использованием C #), и при нажатии на одну кнопку в веб-приложении необходимо запустить настольное приложение.
Есть ли способ сделать это? Я думал о нескольких сценариях:
-Может быть, если возможно установить приложение непосредственно на сервер и запустить его оттуда?
-Может быть, от пользователя требуется установить приложение на свой компьютер и вызвать его оттуда?
Если возможно, я бы предпочел не использовать второй подход, потому что лучше, если третье лицо не будет вовлечено — это будет более удобным для пользователя, если приложение будет запущено напрямую. Но любая помощь будет оценена, потому что на данный момент я не уверен, возможно ли это вообще сделать.
Вы можете установить приложение на сервере и запустить его с помощью оператора exec () или «», но для управления графическим интерфейсом приложения вам нужно использовать некоторые из них, такие как autoit ant и т. Д.
Существуют очень веские (с точки зрения безопасности) причины, по которым сложно запускать процессы на стороне клиента из веб-браузеров.
У вас есть доступ к исходному коду приложения C #? Если это так, вы можете изменить его, чтобы воспользоваться преимуществами развертывания Microsoft ClickOnce.
Некоторые ссылки:
http://msdn.microsoft.com/en-us/library/t71a733d.aspx
http://msdn.microsoft.com/en-us/library/t71a733d(v=vs.80).aspx
http://msdn.microsoft.com/en-us/library/6ae39a7c.aspx
http://www.codemag.com/Article/0902031
Вот старая статья о развертывании приложений WinForms через ClickOnce с Visual Studio 2005: http://msdn.microsoft.com/en-us/library/ms953320.aspx
Если вы в конечном итоге решите потребовать, чтобы ваши пользователи установили клиентское приложение, и ожидали, что большинство пользователей будет работать в Windows, вы можете зарегистрировать свое приложение для обработки определенной схемы и анализа его командной строки при запуске. Подробнее об этом здесь:
http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
Вы регистрируете пользовательскую схему и затем перехватываете ее в аргументах командной строки приложения. Весь URL будет передан в качестве аргумента, например:
myapp://parameter1,parameter2
Браузер в основном спрашивает, доверяет ли пользователь приложению для обработки этой схемы с возможностью запомнить этот параметр.
Если у вас нет доступа к исходному коду клиентского приложения, вы можете разработать промежуточное программное обеспечение, своего рода средство запуска, которое обрабатывает URL-адрес, а затем запускает клиентское приложение после, возможно, изменения некоторых файлов конфигурации на основе URL-адреса или иного контроля стороннее приложение делать как у вас.
Что касается решения № 1, я не думаю, что C # имеет значение, если ваше приложение может работать на Mono, поэтому вы можете просто запустить его из PHP. Тем не менее, это, вероятно, не будет работать на веб-хостинге, и вам придется получить VPS для этого.
Возможно, это можно сделать с помощью IIS, но может быть затруднительно настроить его для работы в качестве текущего пользователя, тем более что для приложения, которое необходимо подключить к рабочему столу текущего пользователя, вероятно, также потребуется запустить его с повышенными правами.
Проще всего установить дистрибутив Windows LAMP (например, WAMP: http://www.wampserver.com/en/), а затем запустите httpd.exe непосредственно из командной строки с повышенными правами (Admin); не запускайте apache как сервис!
Как только вы сделаете это, выполняя Exec ( «команда»); Вызов php вызовет настольное приложение, как если бы оно вызывалось из командной строки администратора. Очевидно, вам нужно настроить сервер apache так, чтобы он был доступен извне локальной системы и т. Д.