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

VB 6 et antérieur Discussion :

Problème avec une source de developpez.com


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut Problème avec une source de developpez.com
    Salut,
    je voulais utiliser le code pour trouver les dimensions et position de la barre de tache.
    J4ai trouvé ce code qui semblais marchais:
    http://vb.developpez.com/faq/?page=Systeme#taskbar

    Mais le problème que je viens de m'apercevoir, c'est que lorsque je met la barre a gauche ou en haut, la position renvoyé est toujours 1 alors que lorsque la barre est a gauche, la position devrait être 4.

    Je ne sais pas trop d'ou viens le problème et je ne comprend pas ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Screen
        intI = .Width \ (.TwipsPerPixelX * 2)
        intJ = .Height \ (.TwipsPerPixelY * 2)
    End With
    A quoi servent intI et intJ?

    Merci de vos aide

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    j'ai modifier les conditions et ca marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If .Top <> 0 Then
            .Position = 3
        ElseIf .Left <> 0 Then
            .Position = 2
        ElseIf .Left = 0 And .Height = Screen.Height \ Screen.TwipsPerPixelY Then
            .Position = 4
        ElseIf .Top = 0 And .Left = 0 Then
            .Position = 1
        End If

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    Une question (et ma réponse pourra peut-être te conduire vers tout autre chose de plus adroit) :
    Pourquoi cherches-tu cette information (pour décider de quoi, ensuite) ?

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    parce que je défini la position de ma fenetre en fonction de la barre de tache, si elle est en haut, je met la fenetre juste en dessous en haut et si elle est en bas je place la fenetre en bas juste au dessus de la barre de tache.

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour, Morgan47,

    Je m'en doutais passablement, à vrai dire ...

    Alors (et je ne sais plus si c'est sur ce forum ou ailleurs que l'en ai parlé hier ou avant-hier).

    VB a un controle Sysinfo (ajoute-le par Projet ===>>> composants ==>> etc...)

    Ce contrôle possède, entre autres, 4 propriétés qui t'intéressent :

    WorkAreaTop, WorkAreaLeft, WorkAreaWidth et WorkAreaHeight.

    WorkArea ? C'est tout simplement la surface restée disposible (donc hors barre des tâches) sur ton écran, et ce : quelle que soit la position de cette barre des tâches.

    Voilà .....

    Bonne continuation...

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour, Morgan47,

    Je m'en doutais passablement, à vrai dire ...

    Alors (et je ne sais plus si c'est sur ce forum ou ailleurs que l'en ai parlé hier ou avant-hier).

    VB a un controle Sysinfo (ajoute-le par Projet ===>>> composants ==>> etc...)

    Ce contrôle possède, entre autres, 4 propriétés qui t'intéressent :

    WorkAreaTop, WorkAreaLeft, WorkAreaWidth et WorkAreaHeight.

    WorkArea ? C'est tout simplement la surface restée disposible (donc hors barre des tâches) sur ton écran, et ce : quelle que soit la position de cette barre des tâches.

    Voilà .....

    Bonne continuation...
    He bien, pour quelqu'un toujours si prompt à fustiger l'approximation et avec une référence ajoutée pour un résultat approximatif
    il peut être désireux de savoir si la barre de tache est masquée ou non et où elle se trouve précisément
    et donc ne pas se contenter de la zone d'affichage.

    Voit du coté de Findow et GetWindowPlacement
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
     
     
    Private Type POINTAPI
            x As Long
            y As Long
    End Type
    Private Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
    End Type
    Private Type WINDOWPLACEMENT
            Length As Long
            flags As Long
            showCmd As Long
            ptMinPosition As POINTAPI
            ptMaxPosition As POINTAPI
            rcNormalPosition As RECT
    End Type
     
     
    Sub GetTasckBarPlacement()
     
     
        Dim TrayHwnd As Long, WinPlacement As WINDOWPLACEMENT
     
        TrayHwnd = FindWindow("Shell_traywnd", "")
     
        WinPlacement.Length = Len(WinPlacement)
        GetWindowPlacement TrayHwnd, WinPlacement
     
        With WinPlacement.rcNormalPosition
            Debug.Print .Left, .Top, .Bottom, .Right
        End With
    End Sub
    Attention, le résultat tient compte du fait que la barre est masquée ou non.
    Et tant qu'à faire, il reste à savoir si tu gères du multi écran car le résultat est relatif à l'écran principal.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/03/2010, 16h03
  2. Problème avec une librairie open source sous myEclipse
    Par scaryfan dans le forum EDI et Outils pour Java
    Réponses: 0
    Dernier message: 01/09/2009, 20h40
  3. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29
  4. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33

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