1. #1
    Membre régulier
    Profil pro
    Inscrit en
    juin 2007
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 269
    Points : 118
    Points
    118

    Par défaut WorkAreaLeft avec une DLL, sans passer par SysInfo.ocx

    Bonjour,

    Actuellement dans un projet VB5 j'utilise le contrôle (OCX) SysInfo pour obtenir les coordonnées utilisable de l'écran (donc en dehors de la barre des tâches) :

    SysInfo1.WorkAreaLeft
    SysInfo1.WorkAreaTop
    SysInfo1.WorkAreaWidth
    SysInfo1.WorkAreaHeight

    Je souhaite que mon programme n'utilise plus aucune OCX. Trop de problèmes de compatiblité...

    Comment récupérer WorkAreaLeft, ... WorkAreaHeight sans OCX ? En utilisant l'API win32 (gdi32, kernel32, ...) ?

    Attention le programme doit tourner même sous Windows95

    Merci - à bientôt

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    juin 2007
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 269
    Points : 118
    Points
    118

    Par défaut

    Voici la solution :

    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
        Type WinRECT
            Left As Long
            Top As Long
            right As Long
            bottom As Long
        End Type
        Private Declare Function SystemParametersInfo Lib "user32" _
            Alias "SystemParametersInfoA" (ByVal uAction As Long, _
            ByVal uParam As Long, ByRef lpvParam As WinRECT, _
            ByVal fuWinIni As Long) As Long
        Private Const SPI_GETWORKAREA = 48
    ...
    ...
    '        WaLeft = CiDess.PC_Info.WorkAreaLeft
    '        WaTop = CiDess.PC_Info.WorkAreaTop
    '        WaWidth = CiDess.PC_Info.WorkAreaWidth
    '        WaHeight = CiDess.PC_Info.WorkAreaHeight
            Call SystemParametersInfo(SPI_GETWORKAREA, 0, wr, 0)
            WaLeft = wr.Left * Screen.TwipsPerPixelX
            WaTop = wr.Top * Screen.TwipsPerPixelY
            WaWidth = (wr.right - wr.Left) * Screen.TwipsPerPixelX
            WaHeight = (wr.bottom - wr.Top) * Screen.TwipsPerPixelY

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

Discussions similaires

  1. [AC-2007] Requête Ajoût avec donnée d'une table, sans passer par le SQL
    Par charlhub dans le forum Access
    Réponses: 4
    Dernier message: 08/01/2012, 20h49
  2. Réponses: 4
    Dernier message: 01/04/2009, 15h16
  3. Envoyer une télécopie sans passer par l'assistant de télécopie
    Par therouxy dans le forum Composants VCL
    Réponses: 5
    Dernier message: 09/10/2006, 12h05
  4. Réponses: 5
    Dernier message: 13/04/2006, 23h54
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 20h13

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