IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Utilisation de Workingarea


Sujet :

VBScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 12
    Par défaut Utilisation de Workingarea
    Bonjour à tous,

    je débute tout juste en VBScript, et je n'ai pas compris comment utiliser certain appels. Ca va venir, mais là je bloque

    Je voudrais simplement obtenir la taille disponible à l'écran, hors barre des tâches et autres décorations. En VB j'utilise sans problème WorkingArea avec quelque chose du genre Screen.PrimaryScreen.WorkingArea. Avec .Width et .Eight qui donnent les dimensions.

    Impossible de trouver comment faire en VBScript. Je rame, je rame

    Exemple de base: Wscript.Echo "Largeur = " & Screen.PrimaryScreen.WorkingArea.Width
    Ca indique que Screen n'est pas connu.

    Quelqu'un saurait m'indiquer la recette, histoire que je pige ?
    Ou une doc, car il est écrit partout que VBS et VB se ressemblent, mais là quelque chose m'échappe.

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    salut,
    avec wmi
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 12
    Par défaut
    Citation Envoyé par omen999 Voir le message
    avec wmi
    Merci pour l'info. J'étais déjà tombé sur cette page, mais impossible de faire fonctionner le script.

    J'ai copié/collé le script dans un fichier test.vbs
    J'ai une erreur sur la ligne "for each": le fichier spécifié est introuvable (code 80070002). Il indique que l'erreur est au caractère 1, mais est-ce fiable ? Ca voudrait dire qu'il ne connaît pas "for each".

    J'ai le même type d'exemple ici: http://activexperts.com/admin/script...vbscript/0055/

    A chaque fois j'ai la même erreur sur la ligne "for each". C'est pour cela que j'ai pensé à demander ici, car franchement, je bloque.


    J'ai maintenant nettement avancé: sur Windows 7 ça fonctionne. Il se trouve que je suis encore sous Windows XP, et là j'ai l'erreur.

    Maintenant, comment éviter cette erreur sous Windows XP ?

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 127
    Par défaut
    Un copier/coller provenant de ce site Qui fonctionne très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    On Error Resume Next
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    Set colItems = objWMIService.ExecQuery _
        ("Select * from Win32_DisplayConfiguration")
     
    For Each objItem in colItems
        Wscript.Echo "Bits Per Pel: " & objItem.BitsPerPel
        Wscript.Echo "Device Name: " & objItem.DeviceName
        Wscript.Echo "Display Flags: " & objItem.DisplayFlags
        Wscript.Echo "Display Frequency: " & objItem.DisplayFrequency
        Wscript.Echo "Driver Version: " & objItem.DriverVersion
        Wscript.Echo "Log Pixels: " & objItem.LogPixels
        Wscript.Echo "Pels Height: " & objItem.PelsHeight
        Wscript.Echo "Pels Width: " & objItem.PelsWidth
        Wscript.Echo "Setting ID: " & objItem.SettingID
        Wscript.Echo "Specification Version: " & objItem.SpecificationVersion
        Wscript.Echo
    Next
    Citation Envoyé par Valky
    J'ai maintenant nettement avancé: sur Windows 7 ça fonctionne. Il se trouve que je suis encore sous Windows XP, et là j'ai l'erreur.
    le fait de l'exécuter sous Windows XP ne devrait pas poser de problème.

    Motif de l'édit:
    Après essais sous Windows XP, je confirme que le code fonctionne correctement.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 12
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Après essais sous Windows XP, je confirme que le code fonctionne correctement.
    Je confirme: ça fonctionne bel et bien sous Windows XP... sauf sur le mien
    Tous les exemples précédents fonctionnent sur XP, je viens de tester sur une autre machine.

    Par contre je constate que ça me donne la résolution de l'écran, et pas le fameux WorkingArea (c'est à dire la dimension utile, hors barre des tâches et autres).

    Ou puis-je trouve de la documentation sur WMI ? Ou une autre méthode pour trouver cette information ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 12
    Par défaut
    J'ai trouvé un truc détourné: IE.Document.ParentWindow.Screen et ensuite .availwidth et .availeight
    Une grosse ruse de sioux, mais ça fonctionne.

    Vu que je suis perfectionniste, je vais tenter de trouver une méthode plus propre

    Il me reste également à trouver comment obtenir la hauteur d'une barre de titre. Pour l'instant google ne m'a rien donné de bien, je persiste.

    ps: je n'en reviens toujours pas que "for each" ne fonctionne pas sur _ma_ machine. J'ai fais quoi de mal dans mon enfance pour mériter ça ?!

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    salut

    intéresse-toi à l'utilisation de la fonction SystemParametersInfo (Librairie user32 de l'API de Windows) en utilisant son flag :

    SPI_GETWORKAREA
    Retrieves the size of the working area. The working area is the portion of the screen not obscured by the tray. The pvParam parameter must point to the RECT structure that receives the coordinates of the working area.
    EDIT :
    Citation Envoyé par Valky Voir le message
    En VB j'utilise sans problème WorkingArea avec quelque chose du genre Screen.PrimaryScreen.WorkingArea. Avec .Width et .Eight qui donnent les dimensions.
    Sous VB6, ce serait tout simplement la propriété WorkArea du contrôle SysInfo (Sysinfo.ocx) . Elle donne les dimensions Width et Height et positions Left et Top de la surface de travail disponible, hors barres Windows et quelques soient leurs position et ou disposition. Elle sait calculer cette disponibilité en fonction de l'état de la barre (toujours visible, non visible, escamotable).

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo