Esta es una aplicación web interna en la que nos gustaría que las páginas web contengan enlaces a varias utilidades que son Win32 EXE. Los EXEs son confiables y producidos por nosotros. (no importa si pregunta si está bien ejecutar o guardar). Intenté un enlace directo (por ejemplo, C: \ notepad.exe) que funciona solo localmente. (Esto será compartido en la red). Intentó archivo: /// y no funcionó. IE7 es el navegador necesario.Cómo ejecutar un EXE desde la página web (asp.net)
Respuesta
¿Qué tal algo como:
<a href="\\DangerServer\Downloads\MyVirusArchive.exe"
type="application/octet-stream">Don't download this file!</a>
-1 - Esto descargaría el exe cada vez. Requeriría los pasos de descarga e instalación cada vez. Pero la pregunta es cómo ejecutar un exe que ya está en la máquina del usuario. Una olla de pescado completamente diferente. –
@Larry: Creo que estás equivocado en tu interpretación. En mi opinión, el OP dice que los archivos ejecutables son producidos por ellos (tal vez un departamento particular de la organización) y deben estar disponibles para su descarga y posterior ejecución a toda la organización. – Cerebrus
Si está buscando iniciar una aplicación en el escritorio de los usuarios cuando hacen clic en un enlace o botón en una página web, y sus aplicaciones de escritorio están en .NET, entonces es posible que desee examinar el uso de ClickOnce para implementar las aplicaciones. ClickOnce aliviará el dolor de distribuir la aplicación en este señorío. –
¿Has probado un UNC share?
\\server\share\foo.exe
Se puede ver cómo iTunes lo hace mediante el uso de Fiddler para seguir la acción cuando se utiliza el enlace: http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=80028216
- Descarga un archivo js
- en Windows: el archivo js determina si iTunes se instala en el equipo o no: busca un componente de explorador ActiveX si IE, o un complemento del navegador si FF
- Si iTunes está instalado, el navegador es redirigido a una URL con un transporte especial: itms: // ...
- El navegador invoca el controlador (provisto por el exe de iTunes). Esto incluye iniciar el exe si aún no se está ejecutando.
- iTunes exe utiliza el resto de la URL especial para mostrar una página específica al usuario.
Tenga en cuenta que el exe, cuando se instala, instala controladores de protocolo URL para el transporte "itms" con los navegadores.
No es un proyecto de ingeniería simple para duplicar, pero definitivamente factible. Si continúa con esto, considere hacer el software relevante de código abierto.
¿Está diciendo que tiene problemas para insertar en una página web un enlace a un archivo que tiene una extensión .exe?
Si ese es el caso, entonces retroceda un paso. Imagine que el archivo tiene una extensión .htm o una extensión .css. ¿Cómo puedes hacer que se descargue? Si se trata de un enlace estático, la respuesta es clara: el archivo debe estar en el docroot para la aplicación ASP.NET. IIS + ASP.NET sirve muchos tipos de contenido: archivos .htm, archivos .css, archivos .js, archivos de imagen, implícitamente. Todos estos archivos están en algún lugar debajo del docroot, que de forma predeterminada es c: \ inetpub \ wwwroot, pero para su aplicación web seguramente es algo diferente. El hecho de que el archivo que desea exponer tenga una extensión .exe no cambia las leyes básicas de la física de IIS. El exe tiene que vivir bajo el docroot. El recurso compartido de red podría funcionar para algunos navegadores.
La alternativa, por supuesto, es escribir dinámicamente el contenido del archivo directamente en Response.OutputStream. De esta manera, no necesita el .exe para estar en su docroot, pero no es un enlace de descarga directa. En este escenario, el archivo puede descargarse con un clic de botón.
Algo como esto:
Response.Clear();
string FullPathFilename = "\\\\server\\share\\CorpApp1.exe";
string archiveName= System.IO.Path.GetFileName(FullPathFilename);
Response.ContentType = "application/octet-stream";
Response.AddHeader("content-disposition", "filename=" + archiveName);
Response.TransmitFile(FullPathFilename);
Response.End();
Sí, muy buena respuesta y gracias por recordarme. Sin embargo, el EXE carga las configuraciones desde su carpeta de carga, así que tendría que volver a escribir para cargar desde la configuración del sitio web. – JoeJoe
Una alternativa es empaquetar la aplicación real junto con su archivo de configuración y cualquier otra cosa que necesite, en un archivo zip autoextraíble (SFX), y luego descargar ESO. El SFX puede especificar un comando ejecutar después de desempaquetar, que podría ser el comando del archivo desempaquetado. Entonces podría cargar su .config normalmente. El problema con esto es, por supuesto, que cortarías el cable. No puede actualizar la configuración centralmente. Una vez que se copia al HD del usuario, está allí para quedarse. – Cheeso
ps: DotNetZip es una biblioteca .NET (gratuita) que permite la creación de archivos autoextraíbles, con un comando ejecutar después de desempaquetar. Podría, dentro de la ejecución de la página ASP.NET, crear dinámicamente el SFX y luego descargarlo al HD del usuario con TransmitFile(). – Cheeso
Como parte de la solution que Larry K sugerido, registrar su propio protocolo podría ser una posible solución. La página web podría contener un enlace simple para descargar e instalar la aplicación, que luego registraría su propio protocolo en el registro de Windows.
La página web contendría enlaces con parámetros que harían que el programa registrado se abriera y que cualquier parámetro especificado en el enlace se le pasara. Hay una buena descripción de cómo hacer esto en MSDN
Esto supone el exe es un lugar que conoces en el ordenador del usuario:
<a href="javascript:LaunchApp()">Launch the executable</a>
<script>
function LaunchApp() {
if (!document.all) {
alert ("Available only with Internet Explorer.");
return;
}
var ws = new ActiveXObject("WScript.Shell");
ws.Exec("C:\\Windows\\notepad.exe");
}
</script>
Documentación: ActiveXObject, Exec Method (Windows Script Host).
¡Esto funciona genial! Para cualquiera que necesite iniciar una aplicación desde una UI y pueda permitirse limitar la distribución a IE, esto es mucho más fácil que construir una UI en .NET o Qt, etc. También es excelente para escribir interfaces de usuario para probar EXE. –
¿cómo podemos lanzar Chrome como se muestra arriba? – Ganesh
'ActiveXObject' funciona solo para IE – ashkufaraz
si las aplicaciones son C#, puede usar ClickOnce deployment, que es una buena opción si no puede garantizar que el usuario tenga la aplicación, sin embargo tendrá que volver a compilar las aplicaciones con opciones de implementación y tomar algunas código repetitivo de cada proyecto.
También puede usar Javascript.
O puede registrar una aplicación en handle a new web protocol que puede definir. También podría ser un protocolo de "selección de aplicación", de modo que cada vez que se haga clic en una aplicación se vincularía a una página en su nuevo protocolo, todo el manejo de este protocolo pasará a su "aplicación de selección" que usa argumentos para encontrar y lanzar una aplicación en la PC del cliente.
HTH
En las ventanas, protocolo especificado para la aplicación se pueden registrar en el registro. En este msdn doc se muestra el registro de una aplicación a un esquema URI.
Por ejemplo, se debe iniciar un archivo ejecutable 'alert.exe'. El siguiente artículo puede ser registrado.
HKEY_CLASSES_ROOT
alert
(Default) = "URL:Alert Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "alert.exe,1"
shell
open
command
(Default) = "C:\Program Files\Alert\alert.exe"
A continuación, puede escribir un html para poner a prueba
<head>
<title>alter</title>
</head>
<body>
<a href="alert:" >alert</a>
<body>
- 1. ¿Cómo ejecutar una página web ASP.NET en Ubuntu Server?
- 2. Ejecutar un programa desde una página web local
- 3. jQuery publicación desde la página web ASP.NET (WebMatrix)
- 4. Ejecutar un programa desde ASP.NET C#
- 5. ¿Encuesta la base de datos desde una página web? - ASP.NET
- 6. ¿Cómo ejecutar la aplicación C++ en la página web?
- 7. ¿Cómo ejecutar ASP.NET C# aplicación web localmente?
- 8. Cómo establecer el título de la página desde una página de contenido web en ASP.NET 3.5
- 9. Ejecutar archivo .exe en Java desde la ubicación del archivo
- 10. ¿Cómo acceder a un Resource.resx desde la página ASP.NET?
- 11. cómo ejecutar un programa .exe mediante script php
- 12. ¿Cómo puedo establecer valor de la cookie en una página y leerlo desde otra página en un sitio web asp.net
- 13. Cómo ejecutar el script de Python en la página web
- 14. Inicie la página web desde mi aplicación
- 15. Cómo llamar asincrónicamente un servicio web desde una aplicación ASP.NET?
- 16. Ejecutando .exe desde Javascript
- 17. Enviando SMS desde un sitio web ASP.NET
- 18. Grabación de audio desde la página web
- 19. Ejecutar un exe del código C#
- 20. ¿Cómo puedo ejecutar un programa EXE desde un servicio de Windows usando C#?
- 21. Cómo determinar la versión instalada de ASP.NET host desde una página Web
- 22. ¿Cómo ejecutar un programa Java desde C#?
- 23. Cómo ejecutar un exe en un evento de compilación posterior
- 24. Haga clic en un botón -> Ejecutar un archivo * .exe
- 25. Devolver objeto JSON desde una página ASP.NET
- 26. Cómo controlar elementos en una página maestra de asp.net desde la página secundaria
- 27. ¿Cómo acceder a un servicio web PHP desde ASP.Net?
- 28. Cómo capturar imágenes desde la cámara web cliente en asp.net
- 29. Cómo crear un archivo .exe ejecutable desde el archivo .m
- 30. ¿Cómo incluir otro proyecto Console Console exe en un sitio web Asp.Net?
respuestas reales aquí: http://stackoverflow.com/questions/3057576/launch-application-from-a-browser – pdem