[HTA] Taille de fenêtre d'une application HTA

Taille de fenêtre d'une application HTA [HTA] - VB/VBA/VBS - Programmation

Marsh Posté le 16-02-2008 à 21:10:09    

Bonjour à tous,
 
je suis en train d'écrir un application HTA mais j'ai un petit souci: Je n'arrive pas à définir la taille de la fenêtre au lancement. Voici un exemple (vous pouvez tester en copiant ce script dans un fichier nommé test.hta):

<html>
<head>
<script language="vbscript">
resizeTo 400,300
</script>
</head>
<body></body>
</html>

Si je lance ce fichier HTA en le sélectionnant au clavier puis en appuyant sur la touche Entrer ça marche.
 
Par contre, si je double clic avec la souris sur ce fichier pour le lancer, j'obtiens l'erreur "Access is denied" (si je tape ensuite F5, ça redimentionne enfin la page).
 
Je ne comprends pas cette différence de comportement. Est-ce que quelqu'un sais comment définir la taille de fenêtre d'un HTA au lancement ?


Message édité par ZeBorG le 16-02-2008 à 21:20:06
Reply

Marsh Posté le 16-02-2008 à 21:10:09   

Reply

Marsh Posté le 16-02-2008 à 22:26:29    

Voici une solution à mon problème:

<html>
<head>
<script language="javascript">
function resize(){
 try {
  window.resizeTo(400,300);
 } catch (e) {}
}
resize();
setTimeout("resize();",100);
</script>
</head>
<body></body>
</html>

J'ai ajouté un try catch pour ne jamais avoir de message d'erreur. Ensuite, j'arme un timer pour appeler ma fonction resize() au bout de 100ms au cas où ça n'a pas marché la première fois (c'est le cas si je lance le HTA avec un double clic).
 
Malheureusement cette solution n'est pas parfaite. En effet, dans le cas où je lance le HTA à l'aide d'un double clic, je vois quand même un flash de la fenêtre en grand avant de passer à la taille souhaité.
 
Si quelqu'un à une meilleur solution, je suis preneur :)
 

Reply

Marsh Posté le 14-08-2010 à 18:38:26    

ZeBorG a écrit :

Voici une solution à mon problème:

<html>
<head>
<script language="javascript">
function resize(){
 try {
  window.resizeTo(400,300);
 } catch (e) {}
}
resize();
setTimeout("resize();",100);
</script>
</head>
<body></body>
</html>

J'ai ajouté un try catch pour ne jamais avoir de message d'erreur. Ensuite, j'arme un timer pour appeler ma fonction resize() au bout de 100ms au cas où ça n'a pas marché la première fois (c'est le cas si je lance le HTA avec un double clic).
 
Malheureusement cette solution n'est pas parfaite. En effet, dans le cas où je lance le HTA à l'aide d'un double clic, je vois quand même un flash de la fenêtre en grand avant de passer à la taille souhaité.
 
Si quelqu'un à une meilleur solution, je suis preneur :)
 


 
moi ca a l'air de fonctionner sans flash blanc comme tu dis car je l'ai mis ce code (présent ci-dessus) au tout début du fichier hta.
Je veux dire par là, avant toutes les autres balises (HTML, head, body, ...)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed