Windows 8 souffle une erreur sur le processus c # pour l’impression d’un fichier pdf, comment?

Le code suivant fonctionne au moins parfaitement pour imprimer un fichier pdf dans Windows 7, mais génère une erreur dans Windows 8:

Process process = new Process(); //process.StartInfo.CreateNoWindow = true; process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.StartInfo.FileName = defFile; if (rwPrinter.Length > 0) { process.StartInfo.Verb = "printto"; process.StartInfo.Arguments = "\"" + rwPrinter + "\""; } else { process.StartInfo.Verb = "print"; } process.Start(); 

Voici quelques détails de l’erreur:

 ************** Exception Text ************** System.ComponentModel.Win32Exception (0x80004005): No application is associated with the specified file for this operation at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at ECitation.Form1.process_ticket(Ssortingng jobdo) at ECitation.Form1.btnPrint_Click(Object sender, EventArgs e) 

Je sais qu’il y a un lecteur adobe pour les fichiers pdf de toute façon, mais je ne sais pas ce dont j’ai besoin pour travailler sur Windows 8, de sorte que cette erreur ne se reproduise plus.

modifier, maintenant c’est bizarre dans Windows 8: printto n’est pas reconnu comme une commande interne ou externe

J’ai essayé de googler cela, mais je suis choqué qu’aucun résultat ne soit obtenu. Tout ce que je veux faire, c’est imprimer mon document par programmation sur une imprimante spécifique.

Le message d’erreur vous dit tout ce que vous devez savoir. Il n’y a rien défini pour le verbe printto sur l’extension de fichier .pdf. Vous devrez configurer vos associations de fichiers pour remédier à cela si vous voulez que cette approche fonctionne.

La façon dont vous essayez de faire cela est assez fragile, car elle repose sur les flous d’un visualiseur de PDF tiers. Si vous contrôlez toutes les machines sur lesquelles l’application est exécutée, vous pouvez configurer le visualiseur PDF à votre guise. Sinon, vous pouvez vous attendre à faire face à beaucoup de support client. Une solution plus robuste consisterait à intégrer la capacité d’impression PDF dans votre application à l’aide de l’une des nombreuses bibliothèques offrant de telles fonctionnalités.