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

Windows Discussion :

Dimension du Desktop sans TaskBar


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Points : 106
    Points
    106
    Par défaut Dimension du Desktop sans TaskBar
    Quelqu'un sait-il comment aller chercher la dimension en pixels du Desktop mais sans tenir compte de la barre des taches en bas de l'écran.
    bon en ce moment j'utilise dans mon programme ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ..  ..   ..
    var
      DC : HDC;
    begin
     DC := GetDC (GetDesktopWindow);
     try
      DestBitmap.Width  := GetDeviceCaps (DC, HORZRES);
      DestBitmap.Height := GetDeviceCaps (DC, VERTRES);
      BitBlt(DestBitmap.Canvas.Handle,0,0,
             DestBitmap.Width,DestBitmap.Height,DC,0,0,SRCCOPY);  
    ..  ..  ..
    Je ne veux pas copier la barre de taches avec le Desktop. Je cherche dans la documentation de API sans succès.

    Merci a tous,
    Pipo123

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    la dimension en pixels du Desktop mais sans tenir compte de la barre des taches en bas de l'écran

    Je pensais à cela :

    1) Faire un FindWindow() avec le nom de la classe de la barre des tâches (qui est : "Shell_TrayWnd") pour avoir son handle.

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HWND hTaskBar = FindWindow("Shell_TrayWnd", NULL);


    2) Obtenir la dimension et l'emplacement (puisque les coordonnées sont relatives à 0,0) de la barre des tâches avec GetWindowRect().


    3) Retrancher la taille de la barre des tâches (suivant son emplacement) de la taille du desktop avant de prendre le bitmap du desktop.


    P.S : Je ne sais pas si tu va distribuer ton programme, mais dans le cas où tu le distribue, fais attention au fait que tout le monde n'a pas la barre des tâche en bas de l'écran (J'ai des collègues qui l'ont à gauche ou en haut de l'écran), elle peut donc être dans un des 4 coins...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Points : 106
    Points
    106
    Par défaut
    Bonjour Neitsa,

    Ca fonctionne bien maintenant. Pour la position autour de l'écran de la barre des taches je peux la déduire d'apres les coordonnées.

    Faut-il faire faire un release window handle ou quelque chose comme ca a la fin du bloc de code a cause de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HWND hTaskBar = FindWindow("Shell_TrayWnd", NULL);
    Bye, Pipo123

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Faut-il faire faire un release window handle ou quelque chose comme ca a la fin du bloc de code
    Non surtout pas, au minimum ça ne fera rien, et au pire, ça risque carrément de faire disparaître la taskbar (j'ai pas super envie d'essayer là ).

    D'une manière générale, si ce n'est pas toi qui créé le handle (par exemple avec un CreateFile() ) ça n'est pas à toi de le fermer (ici FindWindow retourne un handle, mais ce n'est pas cette fonction qui le crée), sauf mention contraire dans la définition de la fonction sur la MSDN.

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

Discussions similaires

  1. Accès au Remote Desktop sans NAT ni logiciel VPN
    Par moussawi27 dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 08/01/2015, 16h00
  2. Dimension titres de chapitre sans toucher aux autres polices
    Par profilien dans le forum Mise en forme
    Réponses: 1
    Dernier message: 24/08/2007, 17h34
  3. Réponses: 8
    Dernier message: 03/05/2007, 17h31
  4. remote desktop sans logout
    Par exter666 dans le forum Windows XP
    Réponses: 2
    Dernier message: 19/09/2006, 09h53
  5. [Image] Connaitre les dimensions d'une image sans la charger
    Par FredN dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 16/01/2006, 12h06

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