J'utilise PDFSharp pour créer un PDF. Dans leurs exemples, ils enregistrent un PDF et ensuite ils lancent un processus pour choisir votre visualisateur pour l'ouvrir. Cela ressemble à ceci :
document.Save(fileName);
Process.Start(fileName);
Lors de mes tests, je me suis rendu compte que si Acrobat Reader est déjà ouvert, je reçois une exception d'entrée/sortie car le processus est déjà en cours d'exécution. J'ai donc essayé de suivre ce post : Détection d'un processus déjà en cours d'exécution dans Windows à l'aide de C# .net
sur la détection du processus. J'ai donc changé le code ci-dessus en ceci :
document.Save(fileName);
if (System.Diagnostics.Process.GetProcessesByName("AcroRd32.exe").Length == 0)
{
Process.Start(fileName);
}
J'ai donc deux questions.
1) Cela ne fonctionne pas. La longueur est toujours de 0. Je me demande donc si je renvoie le mauvais processus ou s'il ne trouve pas le processus. Lorsque je regarde dans le gestionnaire des tâches, AcroRd32.exe est le nom du processus en cours d'exécution.
2) Existe-t-il une meilleure façon de procéder ? J'ai l'impression que ce processus est codé en dur dans le code et je n'étais pas sûr qu'il y ait un meilleur moyen de prendre en charge d'autres versions d'Acrobat (par exemple, s'il existe une version 64 bits) ou d'autres visionneurs de PDF en général.
Désolé si c'est une question de débutant. Ce .NET est assez nouveau pour moi. Merci.