2009-05-04 5 views
5

J'ai un .INF pour une imprimante virtuelle que j'ai besoin d'installer à partir d'une application .NET. Je l'ai fait avant d'utiliser des scripts batch, mais je cherche un extrait de code pour le faire dans le .NET Framework.Comment puis-je installer une imprimante en utilisant .NET?

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

Répondre

9

Je crois que cela est possible par l'intermédiaire Interop aux API Win32 natives, mais je l'ai trouvé son beaucoup, beaucoup plus facile juste utiliser un System.Diagnostics.Process() pour remettre en printui.dll via:

rundll32.exe printui.dll,PrintUIEntry /?

peut-être que vous utilisez déjà que dans le script batch mentionné, mais sinon les paramètres sont documentés ici: PrintUI.DLL User's Guide and Reference

juste être sûr de le tester contre tous les systèmes d'exploitation dont vous avez besoin pour soutenir. Certaines options n'existent pas dans toutes les versions de Windows ou ont été renommées (même si je pense que ce sont les options les plus ésotériques - l'installation d'un fichier .INF fonctionnera probablement dans tous les domaines).

+0

+1 pour être mieux que ma réponse;) – bsneeze

+1

lien est rompu = ( – HiTech

1

Ceci est et non la solution idéale, mais si personne d'autre ne répond, vous pouvez créer un fichier de commandes temporaire et l'appeler via C#/VB.NET.

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

0

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

5

Vous allez vouloir regarder les objets WMI disponibles. Cela vous donne un contrôle plus fin des paramètres de la machine locale. Jetez un oeil à la WMI code creator de Microsoft, je crois que cela va générer un exemple de code que vous pouvez exploiter pour résoudre votre problème.

+0

+1: outil de Nice ... – Dscoduc

+0

Ouais outil génial – Raymund

2

Administering Printer Settings in C# for Flexible Printing

voir cet article, il utilise un SDK MS Platform DLL appelée PRNADMIN pour gérer les imprimantes, les pilotes imprimante, imprimante ports, ... etc.

Je l'utilise personnellement dans un projet commercial pour installer un pilote d'imprimante et changer le port d'imprimante au port local pour intercepter le Postscript. et ça fonctionne comme un charme.

vous pouvez également utiliser des VBScripts pré-installés avec Windows dans C: \ Windows \ system32 \ Printing_Admin_Scripts et est ici un un des articles pour eux:

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

Questions connexes