Vous êtes encore là ?
Super ! Voilà à quoi ressemble la balise HTA :
Code : HTML
Bien sûr, si vous l'introduisez dans votre code, cela ne donnera rien, car il faut lui donner des attributs que je vais vous lister et expliquer par la suite :
Code : HTML 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | <HTA:APPLICATION
ID=""
APPLICATIONNAME=""
CAPTION=""
BORDER=""
ICON=""
SHOWINTASKBAR=""
SINGLEINSTANCE=""
SYSMENU=""
WINDOWSTATE=""
SCROLL=""
SCROLLFLAT=""
VERSION=""
INNERBORDER=""
SELECTION=""
MAXIMIZEBUTTON=""
MINIMIZEBUTTON=""
NAVIGABLE=""
CONTEXTMENU=""
BORDERSTYLE="">
|
Vous trouvez que ça fait beaucoup ? Ne vous en faites pas, je vais vous les expliquer tranquillement; vous aurez même droit à un QCM à la fin.
Il faut placer la balise
<HTA:APPLICATION> dans la partie
<HEAD> de votre source :
Code : HTML1
2
3
4 | <HTML>
<HEAD><TITLE>Mon titre</TITLE><HTA:APPLICATION ATTRIBUTX="" ATTRIBUTY=""></HEAD>
<BODY>Mon texte</BODY>
</HTML>
|
De même, il faut absolument mettre les attributs en majuscules (exemple : <HTA:APPLICATION CAPTION="" > et non <HTA:APPLICATION caption="" >) !
Certaines modifications de la balise <HTA:APPLICATION> nécessitent de fermer l'application et ensuite de la rouvrir (cela concerne entre autre la bordure).
L'attribut CAPTION
- CAPTION sert à dire si oui ou non la barre de titre doit apparaître.
- Valeurs autorisées : Yes ou No.
Avec la propriété CAPTION="No", la barre de titre disparaît.
Comment dois-je faire pour fermer désormais ?
Il faut appuyer sur les touches
Alt et
F4 de votre clavier en même temps, après avoir mis le HTA en activation (vérifiez que dans la barre des tâches, en bas, le bouton du hta est enfoncé). Le fichier disparaîtra avec la combinaison de ces touches magiques.
L'attribut ID
- Sert à donner un nom au HTA pour pouvoir ensuite lire les attributs de la balise HTA.
- Valeurs autorisées : toutes, sauf les noms réservés de Javascript comme window ou document.
L'attribut ID sera donc le nom que vous voulez donner à votre HTA. Vous pourrez par la suite lire la plupart de ses attributs :
Code : HTML - Exemple 1
2
3
4
5
6
7
8
9
10 | <HTML>
<HEAD>
<TITLE>Test HTA pour le site du Zér0</TITLE>
<HTA:APPLICATION ID="MonProg" CAPTION="Yes">
<SCRIPT TYPE="text/Javascript">
alert('Valeur de CAPTION : ' + MonProg.CAPTION);
</SCRIPT>
</HEAD>
<BODY>Mon texte.</BODY>
</HTML>
|
Si vous faites appel à un attribut de l'HTA, vérifiez que celui-ci existe réellement (exemple pour le script ci-dessus : alert(MonProg.SCROLL); renverra comme valeur (undefined) puisque l'atribut SCROLL n'a pas été défini).
L'attribut APPLICATIONNAME
- APPLICATIONNAME est tout simplement le nom que vous voulez donner à votre application pour permettre l'utilisation de SINGLEINSTANCE par la suite (nous verrons ça plus tard).
- Toutes les valeurs sont autorisées.
Code : HTML1 | <HTA:APPLICATION APPLICATIONNAME="Programme du site du Zér0">
|
L'attribut BORDER
- Permet de définir l'épaisseur (la largeur) de la bordure du HTA (grosse, style boîte de dialogue, inexistante ou fine).
- Valeurs autorisées : thick, dialog, none ou thin.
Par défaut, la bordure est sur thick.
Les différentes largeurs de bordure
Vous pouvez remarquer qu'avec l'attribut BORDER="none", la barre de titre disparaît elle aussi.
Admettons quand même que l'épaisseur des bordures ne nous sert pas à grand-chose

.
L'attribut ICON
- Permet de donner une icône à son application.
- Tous les noms d'icônes sont autorisés.
Alors là, ça devient intéressant !
Il faudra que l'application soit dans le même dossier que l'icône.
Le format conseillé de l'icône est de : 15 * 15 (pixels) ! Si le format n'est pas adapté, l'icône sera redimensionnée automatiquement pour l'adapter à la barre de titre !
Vous pouvez aussi mettre une image
bitmap, mais il vaut mieux quelque chose d'approprié, et donc ne pas trop s'éloigner d'un simple fichier
*.ico.
Si vous ne savez pas créer d'icône, vous pouvez télécharger
PhotoFiltre, qui permet aussi de créer des icônes à partir d'autres images... dans
Outils ->
Exportation en icône.
Code : HTML - Exemple1
2
3
4
5
6
7
8
9 | <HTML>
<HEAD>
<TITLE>Test HTA pour le site du Zér0</TITLE>
<HTA:APPLICATION ICON="icone.ico">
</HEAD>
<BODY>
<SPAN STYLE="color:blue">Voici une HTA avec une icône.</SPAN>
</BODY>
</HTML>
|
Vous pouvez aussi placer une valeur qui indique le nom d'une application située dans le dossier Windows (C:\WINDOWS\ chez moi). Exemple : ICON="regedit.exe", ou ICON="notepad.exe", ICON="system32/winchat.exe", ou encore ICON="winhelp.exe" qui nous affichera un point d'interrogation jaune, etc.
On peut aussi utiliser le protocole "res:" pour utiliser une ressource dll (exemple: ICON="res://C:\Documents and Settings\All Users\Dossier\madll.dll/monicone.ico").
L'intégralité de l'application peut avoir recours à ce protocole.
Si Windows ne trouve pas le nom de l'application, il le cherchera alors dans le même dossier que le fichier HTA.
L'attribut SHOWINTASKBAR
- Permet de dire si oui ou non le HTA doit apparaître dans la barre des tâches.
- Yes ou No.
Si on traduisait mot à mot
SHOWINTASKBAR, en français, ça voudrait dire : VoirDansTâchesBarre ; avec cet attribut, on peut voir l'application dans la barre des tâches - vous savez, cette barre tout en bas de votre écran qui sert à se déplacer de programme en programme, et où ceux-ci sont représentés par des
moutons boutons !
SHOWINTASKBAR="Yes"
SHOWINTASKBAR="No"
Si on réduit l'HTA alors que la valeur de
SHOWINTASKAR est
"No", l'application sera réduite sur le bureau en bas à gauche :
L'attribut SINGLEINSTANCE
- Permet de n'ouvrir qu'une seule fois l'HTA.
- Attributs autorisés : Yes ou No.
Bon : avant, si vous ouvriez l'application deux fois, elle s'ouvrait deux fois ! Logique, non ?
Maintenant, si on met l'attribut
SINGLEINSTANCE="Yes", le fichier ne pourra s'ouvrir qu'une seule fois ! Faites l'essai : vous verrez qu'à chaque fois, l'application ne s'ouvre qu'une seule fois. En français, on pourrait traduire par «une seule instance».
Vous devez aussi absolument déclarer APPLICATIONNAME pour que Windows sache son nom, afin qu'il puisse comparer les HTA lancées et n'en garder qu'une seule instance.
L'attribut SYSMENU
- Fait disparaître les éléments de la barre de titre, autres que le titre.
- Attributs autorisés : Yes ou No.
L'attribut WINDOWSTATE
- Définit l'état d'initialisation de l'application.
- Normal, Maximize, ou Minimize.
Cet attribut permet de définir dans quelle position l'application devra s'ouvrir (soit en position normale, agrandie ou réduite).
L'attribut SCROLL
- Détermine si la barre de défilement doit apparaître.
- Valeurs autorisées : Auto, Yes ou No.
À "Auto", la barre apparaîtra seulement si le texte dépasse la taille de l'application.
L'attribut SCROLLFLAT
- Indique si la barre de défilement doit être plate ou en relief.
- Valeurs autorisées : Yes ou No.
Alors là, personnellement, chez moi je ne vois pas de différence, mais cet attribut existe, comme le dit le
MSDN. Il paraît que ça fait beau sous Windows 98, et que c'est mieux que les barres normales de défilement.
L'attribut VERSION
- Version de votre HTA.
- Valeurs autorisées : "chiffre.chiffre". Exemple : première version : 1.0, rectificatifs : 1.1, 1.2, deuxième version : 2.0, etc.
L'attribut INNERBORDER
- Indique si oui ou non la bordure intérieure doit apparaître.
- Valeurs autorisées : Yes ou No.
L'attribut SELECTION
- Permet de désactiver la possibilité de sélectionner le texte de l'application.
- Valeurs autorisées : Yes ou No.
SELECTION="No" désactive aussi le bouton droit ! Si vous voulez désactiver uniquement le bouton droit, il faut seulement tenir compte de l'attribut suivant : CONTEXTMENU.
L'attribut CONTEXTMENU
- Sert à désactiver le clic droit dans l'application. La touche "menu contextuel" de votre clavier le sera aussi.
- Valeurs autorisées : Yes ou No.
L'attribut MAXIMIZEBUTTON
- Permet de désactiver le bouton Agrandir.
- Valeurs autorisées : Yes ou No.
Code : HTML1 | <HTA:APPLICATION MAXIMIZEBUTTON="No">
|
L'attribut MINIMIZEBUTTON
- Permet de désactiver le bouton Réduire.
- Valeurs autorisées : Yes ou No.
L'attribut NAVIGABLE
- Définit si oui ou non on peut "naviguer" dans l'application à l'aide de liens.
- Valeurs autorisées : Yes ou No.
Si la valeur est
No, le lien sera ouvert dans une autre fenêtre avec le navigateur internet par défaut de votre ordinateur.
Sinon, le lien sera ouvert directement par l'application dans la même fenêtre.
Attention, mettre
NAVIGABLE="Yes" peut être source d'insécurité face aux spywares, troyens ou virus.
Je vous expliquerai cela plus tard.
L'attribut BORDERSTYLE
- Définit le style de la bordure.
- Valeurs autorisées : normal, complex, raised, static, ou sunken.
Tout à l'heure, nous avons vu l'attribut
BORDER qui définissait la largeur de la bordure externe. L'attribut
BORDERSTYLE quant à lui est tout simplement le style de la bordure, mais de la bordure interne : plate, en relief (3D), etc.
Le style
static est un cas à part, puisque la bordure externe s'amincit quand même.
BONUS n°1 : COMMANDLINE
- Ce n'est pas un attribut, mais grâce à lui et à Javascript, on peut récupérer l'adresse absolue de l'application avec l'attribut ID.
- Valeur : adresse de l'application se trouvant sur votre ordinateur.
Code : HTML - Exemple 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | <HTML>
<HEAD>
<TITLE>Test HTA pour le site du Zér0</TITLE>
<HTA:APPLICATION ID="MonProg">
<SCRIPT TYPE="text/Javascript">
<!--
alert(MonProg.commandLine);
//-->
</SCRIPT>
</HEAD>
<BODY>
<SPAN STYLE="color:blue">Voici une HTA dont on récupère l'adresse absolue.</SPAN>
</BODY>
</HTML>
|
CommandLine ne doit pas être placé dans la balise <HTA:APPLICATION>, puisqu'il est déjà défini automatiquement.
BONUS n°2 : MAXIMIZEBUTTON + MINIMIZEBUTTON
Si nous avions choisi
MAXIMIZEBUTTON et
MINIMIZEBUTTON avec la valeur
"No", ça aurait donné :