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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut Ouvrir une fenêtre explorateur en mode modal, ou au moins récupérer un événement quand elle se ferme !
    Bonjour,

    Dans un programme, j'ai un bouton qui permet d'ouvrir un explorateur positionné sur un dossier, afin que l'utilisateur puisse effectuer des tâches dedans.

    Je souhaite pouvoir récupérer dans mon programme l'était du dossier une fois que la personne revient dedans...

    J'ai imaginé 3 solutions :

    1/ Fenêtre modale
    La plus simple des solutions. Ouverture de l'explorateur en mode modal, donc mon programme reste bloqué tant que la fenêtre est ouverte. Puis quand l'explorateur est fermé, retour dans mon programme là où il s'était arrêté, et youpi ni vu ni connu je peux recharger le contenu du dossier au retour de l'utilisateur.
    => Sauf que là, je trouve pas du tout comment faire...

    2/ Être notifié de la fermeture de l'explorateur
    N'arrivant pas à ouvrir l'explorateur en mode modal, j'ai tenté de créer un process et de récupérer l'événement Exited, pour recharger le dossier quand l'explorateur est fermé. Mais cela ne fonctionne pas (l'événement se déclenche avant même que l'explorateur ne s'ouvre) :
    Code csharp : 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
     
            private void BtnOpenOut_Click(object sender, EventArgs e)
            {
                Process p = new Process()
                {
                    EnableRaisingEvents = true,
                    StartInfo = new ProcessStartInfo("explorer.exe", Station.OutFolder)
                };
                p.Exited += P_Exited;
     
                p.Start();
            }
     
            private void P_Exited(object sender, EventArgs e)
            {
                RefreshFilesIn();
                RefreshFilesOut();
            }

    3/ Rafraîchir la fenêtre de mon program à intervalle régulier tant que la fenêtre de l'explorateur n'est pas fermée.
    Sauf que là ça va m'obliger à surveiller les process système, donc potentiellement besoin de droits administrateur, etc. Et en plus ça va être très moche... (sapin de Noël...)

    Avez-vous une meilleure solution ?
    Une idée de pourquoi ma solution 2 ne fonctionne pas ?

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Salut StringBuilder,

    As-tu regardés cette piste :
    https://www.visualstudiogeeks.com/wi...er-close-event

    ++

  3. #3
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Le coup du process ne fonctionnera pas en tant que tel, car toutes les fenêtres sont gérées par le même process ! Et le bureau aussi d'ailleurs. Et quand tu ouvres une nouvelle fenêtre en ligne de commande (ou via Process), il y a une communication avec le process déjà existant. C'est pour cela que la commande se termine de suite !

    Peut être est-il possible de faire le coup de la modal avec un objet COM (s'il en existe un pour l'explorateur windows).

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wallace1 Voir le message
    Salut StringBuilder,

    As-tu regardés cette piste :
    https://www.visualstudiogeeks.com/wi...er-close-event

    ++
    Merci, en enrichissant un peu, j'ai pu faire exactement ce que je voulais !

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

Discussions similaires

  1. Ouvrir une fenêtre modal avec bootstrap à partir d'un fichier jsp
    Par BILANGA dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/02/2017, 17h10
  2. Réponses: 14
    Dernier message: 07/09/2016, 14h18
  3. Réponses: 5
    Dernier message: 26/02/2016, 18h40
  4. Ouvrir une fenêtre modale à l'ouverture d'une page
    Par fashion80 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/11/2012, 10h30
  5. [VB.NET] Comment ouvrir une fenêtre modale avec Thread ?
    Par Damien10 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/11/2006, 11h28

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