掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
プリンタのオンライン/オフラインの判定ができません (ID:44665)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
WMIを使っても、私の環境ではどのプリンタ(実機と仮想のPDF等)も常にOnline&Idleなんですよねー。 もちろんVBScript、Delphiともに。メーカーのユーティリティは電源オフを感知して示してるんですが。 環境:Delphi6 Personal、WindowsXP、Brother MFC-J615N Printer ■VBScript If GetObject("winmgmts:\\.\root\CIMV2").Get("Win32_Printer=""Brother MFC-J615N Printer""").WorkOffline Then WScript.Echo "Offline" Else WScript.Echo "Online" End If ■Delphi implementation {$R *.dfm} uses ComObj; const mWorkOffline: array[Boolean] of String =( 'Online', 'Offline' ); mPrinterStatus: array[0..7] of String =( '*Undefined Value*', 'Other', 'Unknown', 'Idle', 'Printing', 'Warming Up', 'Stopped printing', 'Offline' ); procedure TForm1.Button1Click(Sender: TObject); var oLocator: OleVariant; oService: OleVariant; oClassSet: OleVariant; oClass: OleVariant; begin oLocator:=CreateOleObject('WbemScripting.SWbemLocator'); oService:=oLocator.ConnectServer; oClassSet:=oService.ExecQuery('Select * From Win32_Printer'); Memo1.Lines.Add('--------------------------------------'); // 本当は '\\マシン名\root\cimv2:Win32_Printer.DeviceID="プリンタ名"' らしい oClass:=oClassSet.Item('Win32_Printer.DeviceID="'+Edit1.Text+'"'); Memo1.Lines.Add('プリンタ名:'+VarToStr(oClass.Name)); Memo1.Lines.Add('WorkOffline:'+mWorkOffline[Boolean(oClass.WorkOffline)]); Memo1.Lines.Add('PrinterStatus:'+mPrinterStatus[Integer(oClass.PrinterStatus)]); oClass:= Unassigned; oClassSet:=Unassigned; oService:= Unassigned; oLocator:= Unassigned; end; Delphi長杉…。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.