Je déploie un complément Outlook 2007 en cours de création dans Visual Studio 2008 en utilisant C#. J'ai créé une fonction pour extraire le texte d'un document Word. Le problème est qu'environ 20% du temps, cela prendra temporairement le focus et le donnera à mon addin. Je me suis assis et j'ai regardé l'explorateur de processus de sysinternal pendant environ 10 minutes pendant que mon add-in était en cours d'exécution et cela est seulement arrivé lorsque le processus de traitement de texte fonctionnait depuis plus de 2 secondes. Une fois que le processus WINWORD s'est fermé, la mise au point revient au programme précédent.Pourquoi le mot est-il un processus d'arrière-plan via Outlook Addin?
Est-ce que quelqu'un sait pourquoi le processus WINWORD volerait le focus au nom de mon complément et comment l'éviter?
public static string ExtractWordDocument(object filename)
{
Word.Application wordApp = new Word.Application();
string content = null;
Word.Document doc = null;
try
{
doc = wordApp.Documents.OpenNoRepairDialog(
ref filename,
ref officeObjects.Negative,
ref officeObjects.ReadOnly,
ref officeObjects.Negative,
ref officeObjects.Nullobj,
ref officeObjects.Nullobj,
ref officeObjects.Nullobj,
ref officeObjects.Nullobj,
ref officeObjects.Nullobj,
ref officeObjects.Nullobj,
ref officeObjects.Nullobj,
ref officeObjects.Negative,
ref officeObjects.Negative,
ref officeObjects.Nullobj,
ref officeObjects.Nullobj,
ref officeObjects.Nullobj);
content = doc.Content.Text;
}
catch (Exception exc)
{
Util.Log("Error processing word document - Exception received: " + exc.ToString());
}
if (doc != null)
{
((Word._Document)doc).Close(ref officeObjects.SaveChanges, ref officeObjects.OriginalFormat, ref officeObjects.RouteDocument);
}
((Word._Application)wordApp).Quit(ref officeObjects.SaveChanges, ref officeObjects.OriginalFormat, ref officeObjects.RouteDocument);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(wordApp);
doc = null;
wordApp = null;
return content;
}
no-go. Ne change pas du tout de comportement. – McAden