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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.