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

C# Discussion :

Comment rendre le focus au bureau ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut Comment rendre le focus au bureau ?
    Bonjour,

    Comment faire pour que l'application perde son focus (cad le rende au bureau) sans la minimiser?

    Merci.

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Voila un truc qui reactive le bureau


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        private void button1_Click(object sender, EventArgs e)
        {
          // to Minimize all windows on the desktop . 
          // first we get the type from the Shell . Application
          Type typeShell = Type.GetTypeFromProgID("Shell.Application");
          // next we create the object " objShell " from the type " typeShell "
          object objShell = Activator.CreateInstance(typeShell);
          // finally we Invoke " MinimizeAll " to show the desktop
          typeShell.InvokeMember("MinimizeAll", System.Reflection.BindingFlags.InvokeMethod, null, objShell, null);
     
        }

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Oups !

    J'avais pas lu "Sans la minimiser"

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Merci Olibara,

    je vais tester ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Form TheActiveForm=Form.ActiveForm ;
          // Le code d'Olibara
          Type typeShell = Type.GetTypeFromProgID("Shell.Application");
          // next we create the object " objShell " from the type " typeShell "
          object objShell = Activator.CreateInstance(typeShell);
          // finally we Invoke " MinimizeAll " to show the desktop
          typeShell.InvokeMember("MinimizeAll", System.Reflection.BindingFlags.InvokeMethod, null, objShell, null);
    // Ensuite utiliser ShowWithoutActivation pour TheActiveForm() ;
    Résultat:
    Ca ne marche pas, ShowWithoutActivation est une property protected à overrider dans la Forme active. Et comme j'ai pas trop envie de modifier toutes les formes de mon appli, toujours pas de solution .

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    N'ayant rien trouvé, j'ai contourné le problème en créant par dessus la forme active de mon appli une petite form temporaire qui devient la forme active pendant mon traitement batch et que je ferme ensuite.

    Je ne mets pas "résolu" en attendant des suggestions pour une méthode plus propre.

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut Graffito

    J'ai aussi un peu cherché mais pas vraiment trouvé de solutions évidentes !!
    Pourtant je suis certain qu'on doit pouvoir le faire auusi facilement qu'en clicquant avec ta souris sur le Desktop
    Et a mon avis c'est plutot de ce coté la qu'il faudrait chercher : j'ai pas analysé exactement ce qu'on peut faire a partit du GetDeskTopWindow()

    Mais il y a peut etre moyen de changer le focus par là ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
    public static extern IntPtr GetDesktopWindow();

Discussions similaires

  1. [GtkTextView] Comment lui rendre le focus ?
    Par SpiceGuid dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 09/11/2008, 22h08
  2. Réponses: 2
    Dernier message: 19/08/2003, 16h45
  3. Réponses: 2
    Dernier message: 09/07/2003, 15h10
  4. comment rendre invisible une FormStyle->fsMDIchild
    Par caluloa dans le forum C++Builder
    Réponses: 5
    Dernier message: 16/05/2003, 15h21
  5. Comment rendre transparent le tour d un icone
    Par NeoRonin dans le forum Composants VCL
    Réponses: 7
    Dernier message: 03/03/2003, 02h40

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