2012-05-08 18 views
2

zebがEPLでサポートされている場合は、zebraプリンタがインストールされているかどうかを検出してzplでプリンタにバーコードを送信する.Net(csharp 4.0)でアプリケーションを開発しています。 zebraプリンタがインストールされているかどうか、またはネットワーク(共有プリンタ)で使用可能かどうかを確認するにはどうすればいいですか?そうならzplまたはeplをサポートします。私はデバイスIDをチェックすると思った。デバイスIDは表示名だけであり、プリンターやデバイスからプリンター名を変更すると変更されます。Zebraプリンタがインストールされているかどうかを検出する方法

thanx

+1

自動検出機能はうまく機能しません。 * 2台のプリンタが利用可能な場合はどうなりますか?これは、プリンタ名を使用して設定するか、ユーザーがPrintDialogでプリンタを選択するように設定する必要があります。 –

答えて

3

モデル名はチェックしたくないです。代わりに、どのドライバがプリンタを制御しているかをチェックします。結局、ZPL対応プリンタはZebraプリンタドライバを使用しています。また、次のようにdrivernameプロパティを確認できます。当然のことながら、プリンタにはさらに多くのプロパティがあります。

using System; 
using System.Management; 

namespace Test 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      string query = string.Format("SELECT * from Win32_Printer"); 
      ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); 
      ManagementObjectCollection coll = searcher.Get(); 

      foreach (ManagementObject printer in coll) 
      { 
       //foreach (PropertyData property in printer.Properties) 
       //{ 
       // Console.WriteLine(string.Format("{0}: {1}", property.Name, property.Value)); 
       //} 

       var property = printer.Properties["DriverName"]; 
       if (property.Value.ToString().ToLowerInvariant().Contains("zebra")) 
       { 
        Console.ForegroundColor = ConsoleColor.Red; 
        Console.Write("ZEBRA: "); 
       } 
       else 
       { 
        Console.ForegroundColor = ConsoleColor.Gray; 
        Console.Write("Regular: "); 
       } 

       Console.WriteLine(string.Format("{0}: {1}", property.Name, property.Value)); 
      } 

      Console.Write("Press any key to continue . . . "); 
      Console.ReadKey(true); 
     } 
    } 
} 
+0

私はリンクに従いましたが、モデルを見つける方法を得ることができません。あなたは私をもう少し案内してくれますか?それは助けになるでしょう。 – ZafarYousafi

+0

Zebraプリンタの検索方法の例を示しました。 – Jaapjan

+0

thanx、私のプリンタドライバがドライバ名にZDesignerを表示しています。だから、私はドライバをチェックしながら、ゼブラとzdesignerの両方を処理する必要があるようです。 – ZafarYousafi

関連する問題