Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
644 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Centrer un HTA sous Vista / IE7

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Centrer un HTA sous Vista / IE7

n°1952909
boomboommu​sic
Posté le 23-12-2009 à 19:51:52  profilanswer
 

Hello Guy,
 
Je pense que c'est la premiere fois que je poste dans cette section du forum, j'espere ne pas me tromper de sous-catégorie...
 
J'ai fait un petit HTA qui utilise du code en provenance de MS...
Le code est simple...centrer la fenêtre du HTA...
 
Le voici:
 
 

Code :
  1. <html>
  2. <head>
  3. <title>Centered HTA</title>
  4. <HTA:APPLICATION
  5.      ID="objHTA"
  6.      APPLICATIONNAME="Centered HTA"
  7.      SCROLL="yes"
  8.      SINGLEINSTANCE="yes"
  9. >
  10. </head>
  11. <SCRIPT Language="VBScript">
  12.     Sub Window_Onload
  13.         strComputer = "."
  14.         Set objWMIService = GetObject("winmgmts:\" & strComputer & "rootcimv2" )
  15.         Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor" )
  16.         For Each objItem in colItems
  17.             intHorizontal = objItem.ScreenWidth
  18.             intVertical = objItem.ScreenHeight
  19.         Next
  20.         intLeft = (intHorizontal - 800) / 2
  21.         intTop = (intVertical - 600) / 2
  22.         window.resizeTo 800,600
  23.         window.moveTo intLeft, intTop
  24.     End Sub
  25. </SCRIPT>
  26. <body></body>
  27. </html>


 
Mon problème est que ce code fonctionne bien dans ma VM sous XP, mais une fois sous 2003 / Vista / Seven cela ne fonctionne pas...
Je pense plus que le problème est lié à l'OS ou l'IE qu'au code...
 
l'erreur est la suivante:
 
Ligne: 26
Caractère: 9
Erreur: Le type ne correspond pas.
Code: 0
 
Je me dit qu'il y a trés certainement qqu un ici qui connait le problème sur le bout des doigts...
 
Je me trompe ?
 
:)


---------------
-=Liens utiles sur Software & Réseaux= -=Installation automatisée de Windows 2000-XP-2003=- =Modérateur sur www.altirigos.com =-
mood
Publicité
Posté le 23-12-2009 à 19:51:52  profilanswer
 

n°1952968
olivthill
Posté le 24-12-2009 à 09:36:00  profilanswer
 

Le message d'erreur donne une indication qu'il serait sans doute intéressant d'étudier.
En l'occurence, il y aurait un problème de type (de données, je présume).
window.moveTo s'attend à avoir des entiers. Peut-être que intLeft et intTop ne sont pas des entiers dans quelques cas particuliers qui se trouvent sur un système et pas sur l'autre.
Pour débugguer :
1. Mettre en commentaire la ligne du window.move pour vérifer que c'est bien elle qui cause le problème.
2. Si c'est cette ligne, essayer window.move avec des nombres en dur, juste pour voir si cette instruction marche.
3. Si ça marche, afficher intLeft et intTop avant leur utilisation. Cela ne m'étonnerait pas de voir qu'ils sont indéfinis ou bien ont une valeur aberrante dans certains cas.

n°1953112
boomboommu​sic
Posté le 24-12-2009 à 19:00:36  profilanswer
 

olivthill a écrit :

Le message d'erreur donne une indication qu'il serait sans doute intéressant d'étudier.
En l'occurence, il y aurait un problème de type (de données, je présume).
window.moveTo s'attend à avoir des entiers. Peut-être que intLeft et intTop ne sont pas des entiers dans quelques cas particuliers qui se trouvent sur un système et pas sur l'autre.
Pour débugguer :
1. Mettre en commentaire la ligne du window.move pour vérifer que c'est bien elle qui cause le problème.
2. Si c'est cette ligne, essayer window.move avec des nombres en dur, juste pour voir si cette instruction marche.
3. Si ça marche, afficher intLeft et intTop avant leur utilisation. Cela ne m'étonnerait pas de voir qu'ils sont indéfinis ou bien ont une valeur aberrante dans certains cas.


 
Effectivement, c'était bien ça...je m'en suis plus ou moins douté...mais avant que je me replonge dans le code, qqu un avait débuggé pour moi :)
 
Merci en tout pour ton aide :)
 
++


---------------
-=Liens utiles sur Software & Réseaux= -=Installation automatisée de Windows 2000-XP-2003=- =Modérateur sur www.altirigos.com =-
n°1953127
__tomjost
c'est un pseudo !
Posté le 24-12-2009 à 23:27:48  profilanswer
 

Hello  :D  
 
je viens du C++ , (rien la bas)
... je veut preciser que le system n'a rien de problem
 
  intLeft = (intHorizontal - 800) / 2  peut retourner xxx.5 , non?
  alors c'est pas int (pas de pixel au niveau 0.5)
  ...... :sol:  

n°1953191
boomboommu​sic
Posté le 26-12-2009 à 03:10:21  profilanswer
 

__tomjost a écrit :

Hello :D  
 
je viens du C++ , (rien la bas)
... je veut preciser que le system n'a rien de problem
 
intLeft = (intHorizontal - 800) / 2 peut retourner xxx.5 , non?
alors c'est pas int (pas de pixel au niveau 0.5)
...... :sol:  


Je reviendrai sur le code corrigé dés que possible :)


---------------
-=Liens utiles sur Software & Réseaux= -=Installation automatisée de Windows 2000-XP-2003=- =Modérateur sur www.altirigos.com =-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Centrer un HTA sous Vista / IE7

 

Sujets relatifs
Problème de caractères accentués sur Windows Vista en consolepb affichage ie7
Centrer un promptcompiler un driver pour vista
centrer un tableau verticalement ?Pb de positionnement de div avec IE6-IE7
[css] centrer une série de blocs alignésexec() et IE7 et + .. probleme
Gestion de la mémoire sous Vista 
Plus de sujets relatifs à : Centrer un HTA sous Vista / IE7


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR