- 日時: 2010/03/09 19:09
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[印刷関係][周辺機器][ダイアログ] * * キーワード:ぷりんたーの状態,準備完了,オフライン,通常使うプリンタ,Win32_Printer * *********************************************************************************** タイトル : プリンタの状態を取得する 記 事 No : 14505 投 稿 日 : 2010/03/01(Mon) 18:56 元質問者 : ころまつ
プリンタの状態をWin2000にて取得できるコツはありませんか? ダイアログボックスの中に「状態」があるのですが、それを取得できる 方法がわかりません・・・
-------------------------------------------------------------------------------------- 記事No : 14509 投稿日 : 2010/03/02(Tue) 01:18 投稿者 : 花ちゃん -------------------------------------------------------------------------------------- > ダイアログボックスの中に「状態」があるのですが、それを取得できる
状態 って下記の事でよかったのですよね。 http://hanatyan.sakura.ne.jp/dotnet/Prt13.htm
VB6.0 なら下記のような感じで取得できます。 Private Sub Command1_Click() On Error Resume Next Dim objWMIService As Object Dim colItems As Object Dim objItem As Object Dim strComputer As String Dim strOSType As String Text1.Text = "" strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer", , 48)
For Each objItem In colItems Text1.Text = Text1.Text & "Name: " & objItem.Name & vbCrLf If objItem.Default = True Then Text1.Text = Text1.Text & "通常使うプリンターです" & vbCrLf Else Text1.Text = Text1.Text & "通常使うプリンターではありません" & vbCrLf End If If objItem.WorkOffline = True Then Text1.Text = Text1.Text & "オフライン" & vbCrLf Else Text1.Text = Text1.Text & "準備完了" & vbCrLf End If Text1.Text = Text1.Text & "場 所 : " & objItem.PortName & vbCrLf Text1.Text = Text1.Text & "PrinterStatus: " & objItem.PrinterStatus & vbCrLf Text1.Text = Text1.Text & String$(60, "-") & vbCrLf Next End Sub
Windows Vista VB6.0(SP6) の私の環境での取得結果 ------------------------------------------------------------ Name: Microsoft XPS Document Writer 通常使うプリンターではありません 準備完了 場 所 : XPSPort: PrinterStatus: 3 ------------------------------------------------------------ Name: EPSON PM-A840 通常使うプリンターではありません オフライン 場 所 : USB002 PrinterStatus: 3 ------------------------------------------------------------ Name: EPSON PM-3700C (M) 通常使うプリンターではありません オフライン 場 所 : USB003 PrinterStatus: 3 ------------------------------------------------------------ Name: EPSON LP-1400 通常使うプリンターです 準備完了 場 所 : USB001 PrinterStatus: 3 ------------------------------------------------------------
上記のリンク先にも書いていますが、誤解があるといけないので、こちらへも書いておきます。
アプリの印刷のボタンをクリックした時に表示される印刷のダイアログボックスのプリンターの 状態を取得、Excel・Word 等多くのソフトはPrinterStatus の値を表示しているようです。 これは、繋がっていなかっても、電源がOFF でも 3(準備完了) が表示されます。
IE や メモ帳のダイアログでは、WorkOffline の状態を表示しています。 WorkOffline の状態なら、電源がOFF や接続されているか、判断できるようです。 (但し、プリンターによってやパラレル接続等でうまく取得できない場合があります)
参考図(画像をクリックすると元のサイズで見る事ができます。)
|