Aller au contenu


Photo
- - - - -

Lancer plusieurs macro *mcr en Javascript


  • Veuillez vous connecter pour répondre
36 réponses à ce sujet

#11 Dylav

Dylav

    Modérateur

  • Modérateur [Dylav]
  • 29 459 messages

Posté 06 juin 2017 - 01:23

Bonjour,

Je voudrais revenir au choix d'utiliser une HTML Application. En effet, c'est un dispositif propriétaire Microsoft, qui ne peut s'exécuter que sous Windows et que sous Internet Explorer. Sacrée restriction !

Quoi qu'il en soit, pour plus de précisions, je te suggère de consulter le tutoriel HTML Application de l'excellent site OpenClassRooms (ex Site du ZérO, dont les tutoriels étaient réputés).


  • 0

PUBLICITÉ

    Annonces Google

#12 vlx360

vlx360

    Member

  • Membres
  • 34 messages

Posté 06 juin 2017 - 04:38

Si c'est pour moi je ne comprends ce que cela veut dire ! L'intérêt pour moi est que çà fonctionne de la même manière en *hta que le premier code, si je vais avoir le choix d'ouvrir ou enregistrer (ce que je en veux absolument pas), à moins que ton script contourne cette contrainte en html ?


Modifié par vlx360, 06 juin 2017 - 04:50 .

  • 0

#13 vlx360

vlx360

    Member

  • Membres
  • 34 messages

Posté 06 juin 2017 - 07:43

Re :

 

j'ai donc rentré le code suivant :

<!DOCTYPE html>
<html>
<head>
<title>Lancement des macros</title>
<script type="text/JavaScript">
var myArray = ['appli_001.mcr', 'appli_002.mcr',
               'appli_199.mcr', 'appli_200.mcr'];
function lance(Numero_Macro) {
 var wScript = new ActiveXObject("Wscript.Shell");
 var myMacro = myArray[Numero_Macro];
 wScript.run(myMacro);
 return false;
}
</script>
</head>
<body>
<hta:application border="none" singleinstance="yes" windowstate="maximize" scroll="no" caption="no" innerborder="no"></hta:application>
.....
<a href="" onClick="lance(1);return false;"><img src="image_001.jpg"></a>
<a href="" onClick="lance(2);return false;"><img src="image_002.jpg"></a>
.....
<a href="" onClick="lance(199);return false;"><img src="image_199.jpg"></a>
<a href="" onClick="lance(200);return false;"><img src="image_200.jpg"></a>
.....

</body>
</html>

 

 

C'est forcément moi qui fait mal quelque chose, ou alors c'est le code qui n'est pas bon, ?

 

Que ce soit en *hta ou html, çà ne lance rien sur le html pas de message d'erreur.

 

Le message d'erreur en *hta:

http://hpics.li/15440e7


Modifié par vlx360, 06 juin 2017 - 07:48 .

  • 0

#14 vlx360

vlx360

    Member

  • Membres
  • 34 messages

Posté 07 juin 2017 - 08:33

Hello, c'est moi qui me trompe quelque part dans le code ?


  • 0

#15 Dylav

Dylav

    Modérateur

  • Modérateur [Dylav]
  • 29 459 messages

Posté 07 juin 2017 - 10:17

Le message semble clair, il n'existe pas de fichier appli_001.mcr dans le répertoire qui contient le fichier HTML que tu lances. Si tu l'as rangé dans un autre répertoire, il faut fournir son chemin d'accès (exemple : C:/Macros/appli_001.mcr).

 

Nota : les noms que j'ai donnés dans l'initialisation de myArray l'étaient à titre indicatif. Pour t'y retrouver plus facilement, il serait judicieux de les remplacer par les noms réels de tes 200 macros.


  • 0

#16 vlx360

vlx360

    Member

  • Membres
  • 34 messages

Posté 07 juin 2017 - 09:26

Oui j'avais bien compris, le fichier de la macro est au même niveau que celui de la page html et j'ai remplacé le nom d'origine par celui de l'exemple, je n'ai pas de chemin à indiquer normalement, çà devrait donc fonctionner ?


Modifié par vlx360, 07 juin 2017 - 09:29 .

  • 0

#17 Jocko

Jocko

    Member

  • Membres
  • 82 messages

Posté 07 juin 2017 - 09:48

Je n'en suis pas certain mais je crois que la commande à exécuter doit comporter le chemin complet vers l’exécutable (ou partiellement à l'aide  des variables Environnement)

 

https://ss64.com/vb/run.html

 

Il faut modifier la ligne suivante:

 var myMacro = myArray[Numero_Macro];

par

 var myMacro = wScript.CurrentDirectory + "\\" + myArray[Numero_Macro];

Modifié par Jocko, 07 juin 2017 - 10:15 .

  • 0

#18 vlx360

vlx360

    Member

  • Membres
  • 34 messages

Posté 07 juin 2017 - 10:37

Ok Jocko, mais est-ce que je dois rajouter le chemin entre les deux slashes ?

Ou je remplace tel que, je le répète, pour moi c'est du chinois, comme cela l'à été pour vous à vos débuts...Mais vous avez du l'oublier...

 

Rien à faire çà ne fonctionne pas :

 

J'ai mis le chemin complet, dans tous les cas çà ne fonctionne pas, alors soit je fais encore un erreur soit les codes ne sont pas bon, vous les avez testé ?


Modifié par vlx360, 07 juin 2017 - 10:46 .

  • 0

#19 Dylav

Dylav

    Modérateur

  • Modérateur [Dylav]
  • 29 459 messages

Posté 08 juin 2017 - 10:09

Bonjour vlx360,

Dans le monde Microsoft, l'antislash est un caractère spécial, qui doit être doublé pour être compris en tant que tel. Ce qui explique la séquence "\\".

L'instruction que te donne Jocko exprime le chemin complet de ta macro (le signe + est l'opérateur de concaténation de chaînes de caractères),

  1. wScript.CurrentDirectory donne le chemin complet du répertoire qui contient le lanceur HTML,
  2. "\\" représente le séparateur classique entre deux éléments de chemin (cf. ma remarque ci-dessus),
  3. myArray[Numero_Macro] contient le nom de ton fichier macro.

Il n'y a donc rien à ajouter dans cette instruction.


  • 0

#20 Jocko

Jocko

    Member

  • Membres
  • 82 messages

Posté 08 juin 2017 - 10:11

Je supprime mon message;

 

Dylav a donné toutes les informations quelques minutes avant mon post...plus1.gif


Modifié par Jocko, 08 juin 2017 - 10:13 .

  • 0