Question

J'ai un fichier .INF pour une imprimante virtuelle que je dois installer à partir d'une application .NET. Je l’ai déjà fait avant d’utiliser des scripts batch, mais je cherche un extrait de code pour le faire dans le .NET Framework.

Il n'y a rien de particulier à propos de l'imprimante .INF, donc tout code qui installe une imprimante à partir d'un fichier INF en C # ou VB.NET fonctionnera.

Était-ce utile?

La solution

Je pense que cela est possible via l'interopérabilité avec les API Win32 natives, mais j'ai trouvé qu'il était beaucoup plus simple d'utiliser un System.Diagnostics.Process () pour appeler dans printui.dll via:

rundll32.exe printui.dll, PrintUIEntry /?

Peut-être utilisez-vous déjà cela dans le script de traitement de lot mentionné, mais sinon, les paramètres sont documentés ici: Guide d'utilisation et de référence de PrintUI.DLL

Veillez simplement à le tester par rapport à tous les systèmes d'exploitation que vous devez prendre en charge. Certaines options n'existent pas dans toutes les versions de Windows ou ont été renommées (bien que je pense qu'elles sont les plus ésotériques - l'installation d'un fichier .INF fonctionnera probablement dans tous les domaines).

Autres conseils

Vous allez vouloir regarder les objets WMI disponibles. Celles-ci vous donnent un contrôle plus fin des paramètres de la machine locale. Consultez le créateur de code WMI de Microsoft, cela devrait générer un exemple de code que vous pouvez utiliser pour résoudre votre problème.

Administration des paramètres d'imprimante en C # pour une impression flexible

Voir cet article, il utilise une DLL du Kit de développement logiciel (SDK) pour plate-forme MS appelée PRNADMIN pour gérer les imprimantes, les pilotes d’imprimante, les ports d’imprimante, ... etc.

Personnellement, je l’utilise dans un projet commercial pour installer un pilote d’imprimante et changer le port de l’imprimante en port local pour intercepter le Postscript. et cela fonctionne comme un charme.

Vous pouvez également utiliser des vbscripts préinstallés fournis avec les fenêtres dans C: \ Windows \ system32 \ Printing_Admin_Scripts. Voici un article pour eux:

http://technet.microsoft.com/en-us/library /cc771846.aspx

Ce n'est pas la solution idéale, mais si personne d'autre ne répond, vous pouvez créer un fichier de traitement par lots temporaire et l'invoquer via C # / VB.NET.

Quelqu'un connaîtra probablement un moyen plus naturel de le faire.

Vous devrez encapsuler les API de configuration à l'aide de PINVOKE ou d'un objet COM natif.

Je reviens toujours sur les liens suivants pour installer les imprimantes "par programme".

http://support.microsoft.com/kb/314486

http://www.robvanderwoude.com/2kprintcontrol.php

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top