1

C# でローカル プリンターをデフォルトとして設定したい

Google 検索で 2 つの方法を見つけました。

  1. IWshRuntimeLibrary と IWshNetwork_Class の使用
  2. [DllImport("Winspool.drv")] private static extern bool SetDefaultPrinter(string printerName);

http://social.msdn.microsoft.com/Forums/vstudio/en-US/1ed0f29a-a5ff-4328-9c0f-f431f75fccbc/set-defualt-printer?forum=vbgeneralで VB の第 1 位を見つけました

その C# コード:

new IWshRuntimeLibrary.IWshNetwork_Class().SetDefaultPrinter(printerName)

したがって、#1 は COM 相互運用呼び出しです。#2 は単純な dll 呼び出しです。

私は両方を試しましたが、両方とも正常に動作します。それで、私はどれを使うべきですか?#1 用に (クライアントのマシンに) 別のライブラリをインストールする必要がありますか?

4

2 に答える 2

2

私なら、DLL の直接呼び出しを選択します。それが内部的にIWshRuntimeLibrary呼び出さWinspool.drvれると、COM 層は取り除かれるに違いありません。Windows マシンに Windows Scripting Host が適切に登録されていない可能性は低いと思われますが、Winspool.drv利用できない可能性はさらに低いと思われます。

于 2013-10-15T22:16:12.140 に答える
1

.NET には、マネージド ソリューションの形で探しているものが含まれていると思います。LocalPrintServer クラス、特にDefaultPrintQueue プロパティを調べてみてください。そして、ここにいくつかのサンプルコードがあります

于 2013-10-15T22:34:22.393 に答える