2009-11-11 17 views

Répondre

2

Il y a plusieurs interfaces JS pour cela, qui sont probablement bloquées par les navigateurs modernes, pour des raisons de sécurité évidentes.

Alors, soit vos clients vous faire confiance et vous installez [FF/IE/Safari/etc.] Extensions ou ...

Cependant, comme pour la voie d'extension FF voir ma réponse à ce thread

en bref:

Application externe lancement selon cette post peut se faire comme suit:

var file = Components.classes["@mozilla.org/file/local;1"] 
        .createInstance(Components.interfaces.nsILocalFile); 
file.initWithPath("c:\\myapp.exe"); 
file.launch(); 

Pour IE, vous pouvez essayer pour exécuter cette

<script lang='vbscript'> 
    set WshShell = WScript.CreateObject("WScript.Shell") 
    WshShell.Run "C:\program files\program\program.exe" 
</script> 
+1

Ou plutôt 'try {set WshShell = WScript.CreateObject (" WScript.Shell ")}' car cela ne fonctionnera que dans la zone "Poste de travail" ou a complètement désactivé les paramètres de sécurité. – Piskvor

+0

a mis votre commentaire en commentaire. tu as tout à fait raison. Bien que cette approche ne soit pas à considérer comme un moyen de résoudre le problème. –

+0

Comment faire pour exécuter le fichier exe avec des arguments? ... cela fonctionne avec succès le fichier exe, mais un ne peut pas ajouter des arguments ... comment faire cela? –

0

Non, ce serait un trou de sécurité. Les applications Web sont uniquement écrites en HTML/Javascript et parfois d'autres technologies comme Flash qui sont jugées assez sûres pour fonctionner dans les navigateurs. (Même s'ils ont aussi parfois des failles de sécurité.)

1

Cela ne devrait pas être fait, si un utilisateur veut exécuter un exe de votre site, il le téléchargera avec plaisir puis l'exécutera, mais si le site essaie d'exécuter automatiquement un exe quand quelqu'un visite le site qui serait une énorme vulnrabilité de la sécurité.

Qu'est-ce que l'exe fait? Cela peut être possible de faire avec javascript ou même côté serveur. D'autres options si vous voulez vraiment que les clients exécutent des exécutables serait de regarder quelque chose comme .net cliquez une fois le déploiement où vous pouvez publier un exécutable sur votre site et les clients peuvent ensuite télécharger et installer depuis le site, cela vient avec les avantages de choses comme Mises à jour automatiques.

1

Réponse courte - Oui, cela peut être fait. Réponse longue - Non, ça ne peut pas être fait et c'est terriblement mauvais.

Laissez-moi vous expliquer. La sécurité est le facteur décisif, vous pouvez écrire à peu près n'importe quoi en JavaScript, y compris le code pour lancer l'exécutable, mais la plupart des navigateurs ne vous permettront pas de lancer un exe - car il s'agit évidemment d'un énorme risque de sécurité.

Ma suggestion, faites les choses de manière conventionnelle, si vous avez besoin d'un meilleur support côté client, utilisez une applet ou même active-x (mais j'éviterais cela).

2

Dans Internet Explorer, il est possible d'utiliser les contrôles ActiveX pour cela - mais l'utilisateur doit permettre à votre contrôle ActiveX à installer/exécuter. Si vous regardez un environnement sous votre contrôle (par exemple votre entreprise), cela pourrait être un moyen. Avoir travaillé avec une fonctionnalité "d'installation à distance" légitime comme celle-ci, il y a longtemps; de nos jours, il est plus facile de demander à l'utilisateur de télécharger et d'exécuter le programme d'installation (pas dépendant du navigateur, et les utilisateurs ont appris comment le faire (gasp!)).

Si vous voulez dire "avec JS/HTML du navigateur", cela s'appelle "l'exécution de code à distance arbitraire" et est un trou de sécurité assez sérieux. Donc, heureusement, ce n'est pas possible (voulez-vous un site Web pour exécuter format c: sur votre ordinateur?

2

Quelque chose à regarder est Java Web Start.

Il s'agit évidemment d'une technologie Java uniquement, mais elle vous permet essentiellement de démarrer une application locale à partir d'une page Web, et de le faire d'une manière un peu plus sécurisée que de déclencher un .EXE arbitraire.

Un avantage secondaire est qu'il vous permet de déployer des mises à jour d'application pour tous les utilisateurs simplement en mettant à jour la copie du référentiel sur votre site - les mises à jour sont tirées automagiquement.

1

Légalement, non.


Si vous êtes un hacker-cum-pirate:
Ouais. Il y a un trou de sécurité dans les anciennes versions de Flash Player (moins de 9 je crois) qui vous permet de le faire. Si vous êtes assez intelligent, vous pouvez l'exploiter et exécuter n'importe quel code sur la machine des utilisateurs (au moins sur windows/mac). Voir this link pour plus de détails.

+0

solution plutôt transitoire avec beaucoup de crochets et "si" s – Piskvor

+0

Notez que j'ai commencé le post avec un ** non ** .Le reste est censé être une réponse de la langue dans la joue. les hameçons ne devraient pas arrêter un hacker déterminé;) – Amarghosh