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 :

[Débutant] Fenêtre toujours au premier plan


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut [Débutant] Fenêtre toujours au premier plan
    Bonjour,

    Je débute en c# et j'ai besoin de réaliser une petite appli qui soit toujours au premier plan.

    Là où j'en suis :
    - Quand je lance mon programme, la fenètre se met bien au premier plan. Tout va bien.
    - Quand je planifie ce programme pour s'executer en tant qu'administrateur local de la machine (et que je ne suis pas connecté en tant qu'admin local), ça ne marche pas : le programme s'execute sans affichage.

    Avez vous une idée ? Là, je sêche complètement.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé SetWindowPos, mais ça ne change rien au pb.

    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
     
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            	[DllImport("user32")]
    	        static extern int SetWindowPos(int hwnd, 
    		                             int hWndInsertAfter, 
    		                             int X, 
    		                             int Y, 
    		                             int cx, 
    		                             int cy, 
    		                             int wFlags);
                public const int HWND_TOPMOST = -1;
                public const int HWND_NOTOPMOST = -2;
                public const int SWP_NOACTIVATE = 0x10;
                public const int SWP_SHOWWINDOW = 0x40;
                public const int SWP_NOMOVE = 2;
                public const int SWP_NOSIZE = 1;
     
            public Form1()
            {
                InitializeComponent();
                SetWindowPos(this.Handle.ToInt32(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
            }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    Met la propriété TopMost = true pour ta forme ça devrait marcher.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    C'est la première chose que j'ai essayée... et ça marche pas.
    Après un coup de google, j'ai essayé le setwindowspos pour un résultat similaire.

    La fenêtre se met bien au premier plan mais dès que c'est lancé par une tâche planifiée par un autre user, rien ne s'affiche.



    C'est à devenir dingue ce truc.

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Pourquoi vouloir l'exécuter en admin local ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Là où je bosse, les utilisateurs ne sont pas admins de leurs postes.

    J'ai besoin de lancer un 'tit programme à heure fixe mais qui doit s'executer en étant admin local et qui nécessite une interaction utilisateur.
    (en gros, le programme demande si il peut éteindre le PC et si pas de clic pendant 5 minutes, il l'éteint histoire de sauver quelques ours blancs)

    Ce prog tourne parfaitement qd je le planifie pour moi. Par contre, qd je le planifie pour un autre user que moi, (qu'il soit admin ou pas), il s'execute parfaitement MAIS ne s'affiche pas.

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    OK et pourquoi as tu besoin d'exécuter ça en admin ? Tu peux appeler la commande shutdown sans être admin non ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Pour executer shutdown, il faut avoir les droits et les utilisateurs ne l'ont pas pour des raisons de sécurité. (blaster & cie)

    Quand bien même, la tâche planifiée doit s'executer avec le même nom d'utilisateur que celui qui a une session ouverte, sinon rien ne s'affiche.

    Par contre, quand je planifie shutdown.exe, là, ça s'affiche tout le temps quelque soit l'utilisateur. (comme quoi, c'est possible à réaliser).


Discussions similaires

  1. Réponses: 16
    Dernier message: 19/01/2012, 22h48
  2. [MDI] fenêtre fille toujours au premier plan
    Par JuTs dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/04/2007, 10h14
  3. [ VBA / EXCEL ] Fenêtre Excel au Premier Plan
    Par mike42 dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 12h55
  4. programme toujours au premier plan et background grisé
    Par avogadro dans le forum Langage
    Réponses: 5
    Dernier message: 28/03/2006, 21h46
  5. [C#][.Net] Affichage d'une appli toujours au premier plan
    Par alncool dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/07/2005, 12h30

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