Откройте настольное приложение клиента по ссылке на веб-странице

Можно ли запускать настольные приложения на стороне клиента, такие как Adobe Reader, любую игру или любое другое программное обеспечение из Интернета?

У меня есть одна ссылка Как запустить EXE из Интернета страница (asp.net)

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

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

например, если пользователь нажимает ссылку «Adobe Reader», приложение Adobe должно открываться / запускаться.

Есть ли способ открыть какие-либо настольные приложения из Интернета?

Я столкнулся с концепцией подписанного апплета, где мы будем вызывать подписанный апплет с веб-страницы, то есть с помощью тега & внутри

апплет мы будем называть настольными приложениями.

Используя способ апплета, я создал подписанный апплет, и я могу открыть приложение блокнота, указав прямой путь, подобный этому, в апплете:

Process process = new ProcessBuilder("C:\\Windows\\notepad.exe").start();

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

Итак, мы не будем иметь представления об установленном пути приложения, поэтому есть ли способ, с помощью которого мы можем запустить их как службу, указав имя службы, подобное этому ??

Process process = new ProcessBuilder("notepad.exe").start();

person Java    schedule 28.10.2014    source источник
comment
Зачем мне, как конечному пользователю, открывать настольные приложения? из ссылок на веб-странице? Тебе это не кажется немного .. безумным? Как хвост виляет собакой.   -  person Andrew Thompson    schedule 29.10.2014
comment


Ответы (1)


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

затем используя ссылку в форме: myapp: // someaction / arg0 / arg1

тогда myapp: // someaction / arg0 / arg1 будет передан вашему приложению в качестве аргумента командной строки, после чего вы сможете проанализировать и выполнить соответствующее действие.

Вот статья MSDN о том, как этого добиться: http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx

Итак, в вашем случае вы можете:

  • Создайте ключ сценария / реестра, который будет регистрировать протоколы для целевых приложений, а клиенты загружают и устанавливают его. Затем вы можете добавить запуск с веб-страницы, например, myapp: // читатель /
  • Создайте одно приложение (обработчик) и попросите клиентов установить его, затем обработчик возьмет целевое приложение с URL-адреса, например. myapp: // reader / document или просто myapp: // reader, чтобы открыть «Adobe Reader» на клиентском компьютере.

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

person Mustapha Elmalah    schedule 28.10.2014
comment
в моем случае настольные приложения уже установлены, мне просто нужно запустить их по ссылке на веб-странице. - person Java; 28.10.2014
comment
Используя этот подход, вам необходимо зарегистрировать приложение в качестве обработчика протокола в HKEY_CLASSES_ROOT на клиентском компьютере в соответствии с документом MSDN выше, а затем добавить ссылку на свою веб-страницу с помощью myapp: // something и браузер откроет ваше приложение. - person Mustapha Elmalah; 28.10.2014
comment
Если приложение ваше, вы можете заставить его зарегистрироваться - person Mustapha Elmalah; 28.10.2014
comment
Привет, я могу открыть приложение блокнота, указав путь прямо так: Process process = new ProcessBuilder (C: \\ Windows \\ notepad.exe) .start (); - person Java; 28.10.2014
comment
Но как я могу сделать это в общем случае, означает, что приложение блокнота или любое другое программное обеспечение можно установить в любом месте системы. Таким образом, у нас не будет представления об установленном пути приложения, поэтому есть ли способ, с помощью которого мы можем запустить их следующим образом, то есть используя имя службы. Процесс process = new ProcessBuilder (notepad.exe) .start (); - person Java; 28.10.2014
comment
Я не думаю, что это возможно, если бы это было возможно, тогда можно было бы просто создать веб-страницу, которая могла бы управлять клиентской машиной с помощью нажатия кнопки. например запуск вредоносной команды удаления для удаления файлов на клиентском компьютере через cmd.exe. Извините, что я не сказал этого в своем ответе. - person Mustapha Elmalah; 28.10.2014