Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Lancer plusieurs macro *mcr en Javascript


Messages recommandés

  • Modérateurs
Posté(e)

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).

Posté(e) (modifié)

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
Posté(e) (modifié)

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
  • Modérateurs
Posté(e)

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.

Posté(e) (modifié)

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
Posté(e) (modifié)

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
Posté(e) (modifié)

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
  • Modérateurs
Posté(e)

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.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...