プリンターの状態を取得する (1個) (SNo.058) | |
使用コントロール | Button1 ComboBox1 |
その他条件 | WindowsVista WindowsXP(SP2) VB2005(EE) Framework2.0 別途、必要によりComboBox1にプリンターの一覧を取得しておいて下さい 必要により、プロジェクト→参照の追加→.NET→で System.Management を追加しておいて下さい |
プリンターの状態を取得 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim ms As New System.Management.ManagementObjectSearcher("Select * from Win32_Printer") Dim offLine As String Dim priName As String Dim port As String For Each oPrinter As System.Management.ManagementObject In ms.Get() priName = oPrinter("Name").ToString() port = oPrinter("PortName").ToString() If DirectCast(oPrinter("WorkOffline"), Boolean) = True Then offLine = "オフライン" Else offLine = "準備完了" End If Debug.WriteLine("----------------------------------------") Debug.WriteLine("プリンター名:" & priName) Debug.WriteLine("状態 :" & offLine) Debug.WriteLine("場所 :" & port) Next oPrinter End Sub 取得結果 電源断 ---------------------------------------- プリンター名: EPSON PM - A840 状態: オフライン 場所: USB001 ---------------------------------------- プリンター名:EPSON LASER LP-1400 状態: 準備完了 場所: LPT1 電源入り ---------------------------------------- プリンター名: EPSON PM - A840 状態: 準備完了 場所: USB001 ---------------------------------------- プリンター名:EPSON LASER LP-1400 状態: 準備完了 場所: LPT1 |
|
アプリの印刷のボタンをクリックした時に表示される印刷のダイアログボックスのプリンターの状態を取得、Excel・Word 等多くのソフトはPrinterStatus の値を表示しているようです。 これは、繋がっていなかっても、電源がOFF でも 3(準備完了) が表示されます。 IE や メモ帳のダイアログでは、WorkOffline の状態を表示しています。 WorkOffline の状態なら、電源がOFF や接続されているか、判断できるようです。 (但し、プリンターによってやパラレル接続等でうまく取得できない場合があります) |