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 Forms Discussion :

[C#][.Net] Affichage d'une appli toujours au premier plan [FAQ]


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 103
    Points : 97
    Points
    97
    Par défaut [C#][.Net] Affichage d'une appli toujours au premier plan
    Bonjours à tous,
    Est ce que quelqu'un connait la solution à ce problème? Je suis sur que sa ne doit pas être très compliqué cependant je ne trouve pas.

    Il y a beaucoup de posts qui parlent du premier plan mais il s'agit uniquement de la gestion de l'affichage des différents forms d'une même application... (cf la propriété TopMost que l'on passe à true).
    Or ce que je voudrai faire c'est que la/les form(s) de mon application soient toujours affichée à l'écran (sur le bureau de Windows) quelque soient les programmes en cours d'exécution.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Avec Topmost à True, ta form devrait être toujours au premier plan........

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 103
    Points : 97
    Points
    97
    Par défaut
    Avec Topmost à True, ta form devrait être toujours au premier plan........
    Malheureusement non...
    En fait j'ai développé un programme d'automation qui ouvre Word automatiquement et si je clique sur le document Word je perd de vue mon programme et je suis obligé de faire alt+tab ce qui ne m'interesse pas..
    Je voudrai toujours visualiser mon programme de sorte que pour l'utiliser j'ai juste à recliquer dessus pour qu'il reprenne le focus.
    Est ce que tu comprend se que je veux faire?

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Alors là, il faut peut-être voir du coté des API Windows, s'il n'y en a pas une qui te permet d'avoir toujours ta form au premier plan.

  5. #5
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par Morpheus
    Alors là, il faut peut-être voir du coté des API Windows, s'il n'y en a pas une qui te permet d'avoir toujours ta form au premier plan.
    J'ai cherché et je vois pas une qui ferait ça en un seul appel.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 103
    Points : 97
    Points
    97
    Par défaut
    Bah peu importe la facons et le nombre d'appel à faire mais il faudrait que j'arrive à le faire...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 103
    Points : 97
    Points
    97
    Par défaut
    J'ai trouvé sa sur le net :

    To make your window always on top regardles of the focus you need to use
    API functions:

    'Win32API functions
    Private
    Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long,
    ByVal hWndInsertAfter As Long, ByVal

    X As Long, ByVal Y

    As Long, ByVal
    cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

    'Win32API constants
    Private Const HWND_TOPMOST = -1
    Private Const HWND_NOTOPMOST = -2
    Private Const SWP_NOSIZE = &H1
    Private Const SWP_NOMOVE = &H2

    If you want to make your window always on top use this one:

    SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or
    SWP_NOMOVE

    If you don't want your window to be always on top you need to use this:

    SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or
    SWP_NOMOVE
    C'est possible de l'utiliser sous .Net ?

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Oui, il te faut juste faire un peu de P/Invoke

    http://morpheus.developpez.com/DllDotnet/

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 103
    Points : 97
    Points
    97
    Par défaut
    SA PéTE !!!!
    C'est vraiment coool sa marche!
    Alors pour les intéressés voici la traduction de se qu'il faut mettre :

    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
     
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
     
    // Nécessaire pour l'utilisation de DllImport
    using System.Runtime.InteropServices;
     
     
    //La classe de la fenêtre
    public class MaClass : System.Windows.Forms.Form
    {
    	[DllImport("user32")]
    	static extern int SetWindowPos(int hwnd, 
    		                             int hWndInsertAfter, 
    		                             int X, 
    		                             int Y, 
    		                             int cx, 
    		                             int cy, 
    		                             int wFlags);
     
    	// On implémente le constructeur avec la méthode
    	MaClass()
    	{
    		SetWindowPos(this.Handle.ToInt32(),-1,0,0,0,0);
     
    	}
     
    	...
    }
    PS : voir plus haut pour les définitions des différents paramètres.

    Voila!
    Un grand merci à tous ceux qui se sont intéressé au problème et qui m'ont aidé.

  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    On va mettre ca dans la FAQ, car ca peut toujours servir




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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/10/2012, 17h19
  2. Réponses: 20
    Dernier message: 12/02/2010, 15h35
  3. Mettre une fenetre toujours au premier plan
    Par blondelle dans le forum C++Builder
    Réponses: 26
    Dernier message: 14/01/2009, 12h46
  4. Réponses: 11
    Dernier message: 05/06/2007, 21h56
  5. [JFrame] Affichage d'une application toujours au premier plan
    Par michaeljeru dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/12/2006, 23h49

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