Jak zainstalować drukarkę przy użyciu platformy .NET?


Mam .INF dla drukarki wirtualnej, którą muszę zainstalować z aplikacji .NET. Zrobiłem to przed użyciem skryptów wsadowych, ale szukam fragmentu kodu, aby to zrobić w środowisku .NET.
Nie ma nic specjalnego w drukarce .INF, więc zadziała każdy kod ustawiający drukarkę z INF na C # lub VB.NET.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Uważam, że jest to możliwe poprzez interop z natywnymi interfejsami API win32, ale okazało się, że znacznie łatwiej jest po prostu użyć System.Diagnostics.Process () do wywołania printui.dll przez:
rundll32.exe printui.dll,PrintUIEntry/?
Być może już używasz tego we wspomnianym skrypcie wsadowym, ale jeśli nie, opcje są udokumentowane tutaj:

PrintUI.DLL instrukcja obsługi i łącze
http://www.microsoft.com/windo ... .mspx
Po prostu przetestuj go na wszystkich systemach operacyjnych, które chcesz obsługiwać. Niektóre opcje nie istnieją we wszystkich wersjach systemu Windows lub zostały zmienione (chociaż myślę, że są to bardziej ezoteryczne opcje - instalacja .INF najprawdopodobniej zadziała we wszystkich wersjach).
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Będziesz chciał spojrzeć na dostępne obiekty WMI. Zapewnia to lepszą kontrolę nad ustawieniami komputera lokalnego. Spojrzeć na

twórca kodu
http://www.microsoft.com/downl ... %3Den
Wierzę, że WMI firmy Microsoft wygeneruje przykładowy kod, którego możesz użyć do rozwiązania problemu.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Administrowanie ustawieniami drukarki w języku C # w celu elastycznego drukowania
http://www.codeproject.com/KB/cs/PrinterAdmin.aspx
zobacz ten artykuł, używa biblioteki DLL MS SDK o nazwie PRNADMIN do zarządzania drukarkami, sterownikami drukarek, portami drukarek itp.
Osobiście używam go w komercyjnym projekcie do zainstalowania sterownika drukarki i zmiany portu drukarki na port lokalny w celu przechwycenia PostScript. i działa jak zaklęcie.
Alternatywnie możesz użyć niektórych wstępnie zainstalowanych skryptów vbscripts, które są dostarczane z systemem Windows w C: \ Windows \ system32 \ Printing_Admin_Scripts i oto kilka artykułów dla nich:
http://technet.microsoft.com/e ... .aspx
http://technet.microsoft.com/e ... .aspx
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

to

nie

Idealne rozwiązanie, ale jeśli nikt inny nie odpowie, możesz utworzyć tymczasowy plik wsadowy i wywołać go za pośrednictwem C #/VB.NET.
Ktoś inny prawdopodobnie zna bardziej naturalny sposób, aby to zrobić.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Będziesz musiał opakować konfiguracyjne interfejsy API kodem PINVOKE lub własnym obiektem COM.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się