11485 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je voudrais savoir s'il est possible en java script d'exécuter une ligne de commande dos propre à windows xp, y-a-t-il un forumeur ici qui puisse me renseigner ?
Je pense que ce n'est pas permis (quand même, la sécurité...).
Même si c'était possible, il aurait fallu que ça ne gêne pas sous Mac OS X ou Linux.
Bref, si j'étais toi, je chercherais une autre solution Smiley cligne
Modifié par Whisno (11 Aug 2006 - 21:10)
Modérateur
Bonjour Loponix,

C'est pour faire quoi exactement ? Selon ton objectif, il y a peut-être d'autres moyens que de passer par une commande DOS.
Ben c'est pour copier un texte dans le presse papier de windows.

Si tu a une autre solution je prend pour l'instant, mais il faudrat quand même que je puisse exécuter une commande dos.
Modérateur
En fait, après quelques recherches sur google, je suis tombé sur ce script :



<script type="text/javascript">
<!--
function copy_clip(meintext)
{
 if (window.clipboardData) 
   {
   
   // the IE-manier
   window.clipboardData.setData("Text", meintext);
   
   }
   else if (window.netscape) 
   { 
  
   netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
   
   var clip = Components.classes['@mozilla.org/widget/clipboard;1']
                 .createInstance(Components.interfaces.nsIClipboard);
   if (!clip) return;
   
   var trans = Components.classes['@mozilla.org/widget/transferable;1']
                  .createInstance(Components.interfaces.nsITransferable);
   if (!trans) return;
   
   trans.addDataFlavor('text/unicode');
   
   var str = new Object();
   var len = new Object();
   
   var str = Components.classes["@mozilla.org/supports-string;1"]
                .createInstance(Components.interfaces.nsISupportsString);
   
   var copytext=meintext;
   
   str.data=copytext;
   
   trans.setTransferData("text/unicode",str,copytext.length*2);
   
   var clipid=Components.interfaces.nsIClipboard;
   
   if (!clip) return false;
   
   clip.setData(trans,null,clipid.kGlobalClipboard);
   
   }
   alert("Following info was copied to your clipboard:\n\n" + meintext);
   return false;
}
//-->
</script>


et pour appeler la fonction :

onclick="return copy_clip('Bonjour comment ca va ?');"


Cela fonctionne bien sur Internet Explorer, mais sur Firefox cela génère une erreur. Il faut savoir que sur Firefox, par défault, une fonction Javascript ne peut pas utiliser le press-papier pour des raisons de sécurité. Si cette fonction est destinée à l'utilisation interne, et non au public, tu peux toujours modifier la configuration de Firefox pour permettre l'utilisation du press-papier via Javascript.

Je ne garantie pas ce que ce soit le meilleur script, au niveau des standards et de la compatibilité, mais ca peut te dépanner un certain temps. D'ici là, probablement que d'autres membres donneront leurs commentaires sur ce script.

Pour ta commande DOS, tu dois préciser ce que tu veux faire exactement ? Ouvrir un logiciel, lancer une impression ? Sois précis ! Smiley smile
Modifié par Tony Monast (11 Aug 2006 - 23:08)
Pour la commande dos lancement d'application, copie dans le press papier.

Pour le script que tu à poster, on ne peu pas faire ça avec un boutn ?
Modérateur
Loponix a écrit :

Pour le script que tu à poster, on ne peu pas faire ça avec un boutn ?


Bien sûr que tu peux le faire avec un bouton. Il suffit d'appeler la fonction Javascript sur l'événement onclick du bouton.

Loponix a écrit :

Pour la commande dos lancement d'application, copie dans le press papier.?


Est-ce que c'est pour un usage interne ? Parce que déjà, si tu veux pouvoir lancer une commande DOS via Javascript sur un site public, c'est absolument impossible. Les navigateurs ne l'exécuterons pas pour des raisons de sécurité. Par contre, si c'est pour un intranet dans un réseau contrôlé, il y a sans doute une façon de le faire. Pour ma part, c'est un ami qui me développe des extensions pour Firefox qui me permettent de faire beaucoup de choses ensuite par Javascript.
Modifié par Tony Monast (11 Aug 2006 - 23:19)
Sayer pour le bouton texte j'ai trouver:

<a href="#" onclick="return copy_clip('Bonjour comment ca va ?');">Lien test pour copier un texte dans le press papier de windows</a>
J'ai une dernière question à propos du javascript, y-a-t-il moyen d'annuler la fenêtre qui s'ouvre quand on copie le texte dans le press papier ?
Sayer j'ai trouver pour anuler la fenêtre de confirmation, c'est cette ligne:

alert("Following info was copied to your clipboard:\n\n" + meintext); 


Mais j'aimerais quand même garder le sons, saurais tu comment faire ?
J'ai essayer ceci:

<SCRIPT LANGUAGE="VBScript">
Set WshShell = WScript.CreateObject("WScript.Shell" ) 
 WshShell.Run "cmd /c " & "explorer.exe C:\windows" 
</SCRIPT>


Mais ça ne fonctionne pas.