2009-05-04 107 views
5

我有一個.INF虛擬打印機,我需要從.NET應用程序安裝。在使用批處理腳本之前,我已經完成了這個工作,但我正在尋找一段代碼來在.NET Framework中執行此操作。如何使用.NET安裝打印機?

沒有什麼講究打印機.INF的,這樣從一個INF在C#或VB.NET安裝打印機的任何代碼工作。

回答

9

我相信這是可能通過互操作,以原生Win32 API的,但我發現它非常非常容易只是使用的System.Diagnostics.Process()通過調用到printui.dll:

rundll32.exe printui.dll,PrintUIEntry /?

也許你已經在使用中所提到的批處理腳本,但如果沒有參數被記錄在這裏:PrintUI.DLL User's Guide and Reference

只是一定要測試它反對你需要支持所有的操作系​​統。有些選項不是在所有Windows版本中都存在,或者已被重命名(儘管我認爲它們是更深奧的選項 - 安裝.INF可能會全面工作)。

+0

+1的比我更好的答案;) – bsneeze 2009-05-04 02:37:29

+1

鏈接斷開=( – HiTech 2017-05-05 17:21:39

1

這是不是理想的解決方案,但如果沒有人回答,您可以創建一個臨時批處理文件並通過C#/ VB.NET調用該文件。

別人可能會知道一個更自然的方式來做到這一點。

0

您將需要使用包裝或的PInvoke本地COM對象設置的API。

5

您將要查看可用的WMI對象。這些可以更好地控制本地機器設置。看一下微軟的WMI code creator,我相信這會產生一些示例代碼,你可以利用它來解決你的問題。

+0

+1:很好的工具... – Dscoduc 2010-04-07 21:51:58

+0

呀真棒工具 – Raymund 2010-09-17 01:55:06

2

Administering Printer Settings in C# for Flexible Printing

看到這篇文章,它使用MS平臺SDK DLL稱爲PRNADMIN來管理打印機,打印機驅動程序,打印機端口,...等等。

我個人使用它在一個商業項目來安裝打印機驅動程序和打印機端口更改爲本地端口攔截後記。它就像一個魅力。

或者您可以使用來在C Windows中的一些預裝的VB腳本:\ WINDOWS \ SYSTEM32 \ Printing_Admin_Scripts這裏是他們的文章:

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

相關問題