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月08日 20:56 発信者:にしやん
題名:RE(9):API関数でプリンタの状態を調べたい
yui_sさん、こんばんは。
>又、priority以降の値はアドレスを取得しているかが疑問で
>string型の「address」表示を行うとアプリケーションエラーで落ちてしまいます。
ポインタでない値に対して String(・・,\"address\") なんて使ったら、
メモリアクセス違反になるのはあたりまえです。
(PRINTER_INFO_2 構造体の場合、Attributes 以降はポインタではありません)
例えば、Priority には 1 が返されたとありますが、
String(PrinterInfo.Priority,\"address\")
とすると、アクセス禁止領域であるアドレス 1 にアクセスしようとして、
メモリアクセス違反となるわけです。
Priority は DWORD ですから、そのまま 1 でいいです。
他にも、文字列以外(構造体等)に対するポインタも String(・・,\"address\") は
やめましょう。エラーにはなりませんが、まともな文字列が返るわけがありません。
>どのように修正すればよろしいでしょうか?
isii さんが書いているのは、PRINTER_INFO_2 構造体の Status で、
PRINTER_STATUS_OFFLINE フラグのビットが立っているかを確認してみれば・・、
というものです。
ただ、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 でもできるのではないかと思います。
※PRINTER_ATTRIBUTE_WORK_OFFLINE の値は、winspool.h を見ればわかります。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.