SELFHTML

Forum SELFHTML: Archives:
appel .cmd + parametres depuis HTML IE+Netscape >= 4

Page d'information: vue d'ensemble
vers le bas 

(HTML) appel .cmd + parametres depuis HTML IE+Netscape >= 4

Le message suivant est de: ALAIN, 22. 12. 2004, 19:58

Bonjour,

Comment peut-on appeler un fichier de type .cmd avec des paramètres
depuis une page HTML en cliquant sur un lien aussi bien depuis un
browser IE que Netscape ?

Si depuis une page HTML j'ai un lien href vers un fichier.cmd sans paramètre, ca marche sous IE et Netscape.

Mais si le fichier .cmd nécessite des parametres,
je ne trouve pas de solution commune IE + Netscape.

La solution classique javascript avec var wsh = new AcriveXobject('WScript.Shell'); if (wsh) wsh.Run(commande parametres)
ne marche que sous IE.

Y a t-il une solution pour Netscape?

Merci.


 
vers le hautvers le bas 

(HTML) appel .cmd + parametres depuis HTML IE+Netscape >= 4

Le message suivant est de: Bul, 23. 12. 2004, 10:47
http://marcel-bultez.chez.tiscali.fr

Bonjour,
»» var wsh = new ActiveXobject("WScript.Shell");
»» wsh.Run(commande parametres)
Exclusif Internet explorer
»» Y a t-il une solution pour Netscape?
je crains bien que non, hélas.
@+


 
vers le hautvers le bas 

(HTML) appel .cmd + parametres depuis HTML IE+Netscape >= 4

Le message suivant est de: Celelibi, Adresse électronique sysygogo86@msn.com, 23. 12. 2004, 15:27

»» Bonjour,

Bonjour

»» Comment peut-on appeler un fichier de type .cmd avec des paramètres
»» depuis une page HTML en cliquant sur un lien aussi bien depuis un
»» browser IE que Netscape ?

Ceci me parrait assez difficile, si tu fais un lien vers ton fichier le navigateur devrait proposer de lé télécharger ou de l'exécuter avec l'application par défaut.

»» La solution classique javascript avec var wsh = new AcriveXobject("WScript.Shell"); if (wsh) wsh.Run(commande parametres)
»» ne marche que sous IE.

en JavaScript il n'y a pas d'activeX, ceci est du JScript, donc spécifique à IE. De plus permettre à une page web d'exécuter tout et n'importe quoi chez le client c'est pas ce qu'il y a de plus sécurisé.

»» Y a t-il une solution pour Netscape?

Pour vu qu'il n'y en ai jamais....


@+
Celelibi


 

vers le hautvers le bas 

(HTML) appel .cmd + parametres depuis HTML IE+Netscape >= 4

Le message suivant est de: Alain, 23. 12. 2004, 18:20

Finalement en cherchant sur Internet j'ai trouvé une solution
compatible IE et Netscape pour exécuter par exemple notepad.

<HTML>
<BODY>
<SCRIPT>
function exec (command) {
  if (document.layers && navigator.javaEnabled()) {
    window._command = command;
    window.oldOnError = window.onerror;
    window.onerror = function (err) {
      if (err.indexOf ("User didn't grant") != -1) {
        alert('command execution of ' + window._command + ' disallowed by user.');
        return true;
      }
      else return false;
    }
    netscape.security.PrivilegeManager.enablePrivilege('UniversalExecAccess');
    java.lang.Runtime.getRuntime().exec(command);
    window.onerror = window.oldOnError;
  }
  else if (document.all) {
    window.oldOnError = window.onerror;
    window._command = command;
    window.onerror = function (err) {
      if (err.indexOf('utomation') != -1) {
        alert('command execution of ' + window._command + ' disallowed by user.');
        return true;
      }
      else return false;
    };
    var wsh = new ActiveXObject('WScript.Shell');
    if (wsh)
      wsh.Run(command);
    window.onerror = window.oldOnError;
  }
}
</SCRIPT>
<A HREF="javascript:void(0)" onClick="exec('Notepad'); return false;">Appel Notepad</A>
</BODY>
</HTML>

Si on veut exécuter un ma_commande.cmd avec des paramètres la commande devient
exec('cmd.exe /C start /B ma_commande.cmd parm1 parm2')
attention utiliser \\ pour décrire le chemin de ma_commande.cmd
Netscape accepte un chemin relatif (par exemple .\\ma_commande.cmd si le .cmd est au même niveau que le html) et la commande démarre
dans le même répertoire que le .cmd.
IE semble necessiter un chemin absolu et la commande démmarre
dans le répertoire de travail du client, il faut inclure un
pusd %~dp0 en tête de ma_commande.cmd

Bien sûr le serveur demande l'accord du client pour exécuter
la commande.

Bonnes fêtes.


 
vers le haut

© 1998-2004 Adresse électronique selfhtml@fr.selfhtml.org