PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
21175 04/05/09 15:14:58 RE(10):API関数でプリンタの状態を調べたい By isii
21174 04/05/08 20:56:48 RE(9):API関数でプリンタの状態を調べたい By にしやん
21173 04/05/08 17:24:35 RE(8):API関数でプリンタの状態を調べたい By yui_s
21172 04/05/08 17:23:23 RE(7):API関数でプリンタの状態を調べたい By yui_s
21156 04/05/05 20:54:52 RE(6):API関数でプリンタの状態を調べたい By isii
21155 04/05/04 19:48:54 RE(5):API関数でプリンタの状態を調べたい By class
21154 04/05/04 18:29:54 RE(4):API関数でプリンタの状態を調べたい By yui_s
21153 04/05/04 12:05:55 RE(3):API関数でプリンタの状態を調べたい By isii
21152 04/05/01 15:31:16 RE(2):API関数でプリンタの状態を調べたい By yui_s
21150 04/04/28 21:03:06 RE(1):API関数でプリンタの状態を調べたい By class
21149 04/04/28 18:31:31 API関数でプリンタの状態を調べたい By yui_s

カテゴリ:PowerBuilderの開発環境
日付:2004年05月09日 15:14 発信者:isii
題名:RE(10):API関数でプリンタの状態を調べたい

yui_sさん、にしやんさん、こんにちは。

>ただ、WinXP で実験したところ、Status はプリンタの電源の状態にかかわらず
>常に 0 が返されてしまうようです。(OS によって異なるのかもしれません)
>yui_s さんのテストでも 0 のようですね。(条件はわかりませんが・・)

>で、同じく WinXP で実験したところ、PRINTER_INFO_2、PRINTER_INFO_5 の両方にある
>Attributes で PRINTER_ATTRIBUTE_WORK_OFFLINE のビットが立っているかを
>確認すればプリンタの電源の状態を確認できるようです。
>(PRINTER_INFO_2、PRINTER_INFO_5 どちらの Attributes でも同じ値が返されます)
>ちなみに、ビットが立っているときが電源OFFです。

>http://msdn.microsoft.com/library/en-us/gdi/prntspol_8gz6.asp (英文)

>によれば、このフラグは Win9x/Me のみ有効のようなことが書いてありますが、
>WinXP で取得できるので Win2k でもできるのではないかと思います。
USBポートプリンタでは、確かにOSによらず判断できませんでした。
ただし、AttributesでもOSによって判断する値が異なっていました。
・Win9X系(98/95)
 PRINTER_ATTRIBUTE_ENABLE_BIDIで判断
※WinNT系ネットワークプリンタが正常でもPRINTER_ATTRIBUTE_ENABLE_BIDIとなる
・WinNT系(XP/2K/NT40)
 PRINTER_ATTRIBUTE_WORK_OFFLINEで判断
※Win9X系ネットワークプリンタの場合でも使用可能

ネットワークプリンタもOSによって判断する内容が異なります。
・Win9X系(98/95)
 Status:PRINTER_STATUS_USER_INTERVENTIONで判断
 Attributes:PRINTER_ATTRIBUTE_WORK_OFFLINEで判断
・WinNT系(XP/2K/NT40)
 2回目のGetPrinter()の戻り値で判断

Attributesでプリンタの電源状態を判断するのは、以下のようになると思います。
----- プリンタ情報の取得は省略 -----
// 環境情報を取得
environment env
GetEnvironment( env )

if Mod( PrinterInfo[1].Attributes, PRINTER_ATTRIBUTE_WORK_OFFLINE * 2 ) >= 
PRINTER_ATTRIBUTE_WORK_OFFLINE then return False
if env.OSType = Windows! and Mod( PrinterInfo[1].Attributes,
PRINTER_ATTRIBUTE_ENABLE_BIDI * 2 ) >= PRINTER_ATTRIBUTE_ENABLE_BIDI then
return False

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.