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

VSTO .NET Discussion :

Impossible de fermer un Inspector


Sujet :

VSTO .NET

  1. #1
    Futur Membre du Club
    Inscrit en
    septembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : septembre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Impossible de fermer un Inspector
    Bonjour,

    Je développe actuellement un add-on pour Outlook 2010.

    Le but de l'add-on est d'ouvrir une fenetre pour paramétrer un évènement et l'enregistrer; cela fonctionne à merveille, en utilisant un bouton rajouté dans l'onglet "Compléments", seulement, j'ai également besoin d'ajouter un bouton dans le clic droit.

    Cette fenetre en s'ouvrant utilise un nouvel item rendez-vous pour récupérer les horaires de début et de fin séléctionné par l'utilisateur (hack proposé par Sue Mosher), il doit donc pour cela ouvrir et fermer la fenetre du rendez-vous.

    Pour vous éviter un très long message explicant tout le cheminement que j'ai fait, voila l'état des lieu:
    - Avec le bouton dans l'onglet complément: OK
    - Avec le bouton dans le clic droit: Impossible de fermer la fenetre de rendez-vous ouverte

    J'ai fini par pouvoir récupérer l'inspector concerné (le ActiveInspector() renvoi null), mais impossible de le fermer, voila les essais:

    1. Par l'inspector récupéré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LastInspector.Close(OlInspectorClose.olDiscard);
    --> Pas d'erreur, la fenetre reste ouverte mais est buggée (elle n'affiche rien a part sa barre d'outil)
    J'ai également essayé avant le Close() de faire un Activate() ou un Display() sur l'Inspector, ça me jette une exception "Impossible d'afficher l'élément", et le close ne change pas d'effet.

    2. En essayant de récupérer la fenetre active:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object currentwindow = this.Application.ActiveWindow();
    Je ne récupère que la fenetre principale d'outlook, donc si je la ferme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Outlook.Explorer)currentwindow).Close();
    c'est outlook entier qui se ferme.

    3. Par l'item affiché (que j'arrive miraculeusement a récupérer)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Outlook._AppointmentItem)objAppt).Close(OlInspectorClose.olDiscard);
    --> Pas d'erreur, et il ne se passe absolument rien !

    Si quelqu'un a une idée, je suis preneur !!!!!
    Le but étant de fermer cette #!$^èççà de fenêtre

  2. #2
    Futur Membre du Club
    Inscrit en
    septembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : septembre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bon, si quelqu'un est un jour interessé par une "solution"...

    Je me suis saisi d'une grande hache à 2 mains, voir plus...

    Je m'assure que le focus top est à la fenêtre du rendez-vous, et ... je fais un sendkeys de alt+f4 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendKeys.Send("%({F4})");
    Je ne suis pas fier de moi, mais ça fonctionne...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    juin 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2012
    Messages : 1
    Points : 3
    Points
    3
    Par défaut
    Dans le cas où tu serais toujours en recherche d'une hypothétique réponse...
    Si tu veux fermer la fenêtre du rendez-vous, récupère ton objet, assigne lui un évènement Open où tu mets la valeur d'annulation à vrai. Ainsi, l'ouverture de la fenêtre du rendez-vous sera annulée.
    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
    void Inspectors_NewInspector(Outlook.Inspector Inspector)
    {
    	try
    	{
    		if (Inspector.CurrentItem is Outlook.AppointmentItem)
    		{
    			Outlook.AppointmentItem current = (Outlook.AppointmentItem)Inspector.CurrentItem;
    			if (current != null && current.EntryID != null)
    			{
    				current.Open += new Outlook.ItemEvents_10_OpenEventHandler(oAppt_Open);
    			}
    		}
    	}
    	catch (Exception ex)
    	{
    		System.Windows.MessageBox.Show(ex.Message);
    	}
    }
    private void oAppt_Open(ref bool Cancel)
    {
    	Cancel = true;
    }
    En espérant que cela pourra t'aider.

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

Discussions similaires

  1. PC neuf, Impossible de fermer une session
    Par arnolem dans le forum Windows XP
    Réponses: 1
    Dernier message: 26/10/2006, 10h52
  2. Impossible d'installer DOM Inspector Firefox
    Par SuperCed dans le forum KDE
    Réponses: 1
    Dernier message: 01/08/2006, 12h35
  3. [Form close] Impossible de fermer une form
    Par valoji dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2006, 15h12
  4. [Débutant] Impossible de fermer la fenêtre AWT
    Par oodini dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 15/01/2006, 13h44
  5. Impossible de fermer une base de données en lecture
    Par requiemforadream dans le forum ASP
    Réponses: 7
    Dernier message: 21/04/2005, 16h58

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