2009-05-04 3 views
5

Possiedo un .INF per una stampante virtuale che devo installare da un'applicazione .NET. Ho fatto questo prima di utilizzare script batch, ma sto cercando un frammento di codice per farlo in .NET Framework.Come posso installare una stampante usando .NET?

Non c'è niente di particolare nella stampante .INF, quindi funzionerà qualsiasi codice che installa una stampante da un INF in C# o VB.NET.

risposta

9

Credo che questo è possibile tramite interoperabilità per le API Win32 native, ma ho trovato la sua molto, molto più facile solo per usare uno System.Diagnostics.Process() per mettere in printui.dll via:

rundll32.exe printui.dll,PrintUIEntry /?

Forse si sta già utilizzando che nel script batch menzionato, ma se non i parametri sono documentati qui: PrintUI.DLL User's Guide and Reference

tanto per essere sicuro di testare contro tutti i sistemi operativi è necessario supportare. Alcune opzioni non esistono in tutte le versioni di Windows o sono state ridenominate (anche se penso che siano le opzioni più esoteriche - l'installazione di un file .INF probabilmente funzionerà su tutta la linea).

+0

+1 per essere meglio di quanto la mia risposta;) – bsneeze

+1

link è rotto = ( – HiTech

1

Questo è non la soluzione ideale, ma se nessun altro risponde, è possibile creare un file batch temporaneo e invocarlo tramite C#/VB.NET.

Qualcun altro probabilmente conoscerà un modo più naturale per farlo.

0

Sarà necessario avvolgere le API di configurazione utilizzando PINVOKE o un oggetto COM nativo.

5

Si desidera esaminare gli oggetti WMI disponibili. Questi ti danno un controllo più preciso delle impostazioni della macchina locale. Dai uno sguardo allo WMI code creator di Microsoft, credo che questo generi un codice di esempio che puoi sfruttare per risolvere il tuo problema.

+0

+1: Nice strumento ... – Dscoduc

+0

Sì strumento fantastico – Raymund

2

Administering Printer Settings in C# for Flexible Printing

si veda questo articolo, utilizza un MS Platform SDK DLL chiamata PRNADMIN per gestire le stampanti, stampanti-driver, stampante-porti, ... ecc.

Io personalmente lo uso in un progetto commerciale per installare un driver di stampante e modificare la porta della stampante sulla porta locale per intercettare il Postscript. e funziona come un fascino.

In alternativa è possibile utilizzare alcune VBScript preinstallati che vengono con finestre in C: \ Windows \ system32 \ Printing_Admin_Scripts ed ecco un un articoli per loro:

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