激凹みから立ち直る方法

CreateProcess API でプログラムを実行する時に、引数STARTUPINFO構造体の中で、初期表示位置としてセカンダリモニタ上の座標を指定しても、プライマリモニタ上に表示されてしまいます。

どのようにすればセカンダリモニタに初期表示することができるのでしょうか?

A 回答 (2件)

こんなの見つけました。


http://www.catch22.net/tuts/undoc01.asp

#私はマルチモニタ環境が無いんで試せませんが・・・

参考URL:http://www.catch22.net/tuts/undoc01.asp
    • good
    • 0
この回答へのお礼

参考URLの方法でセカンダリモニタに表示できました!

webも調べていたのですが、英語が苦手なので英語ページはパスしてました(^^;

ありがとうございました!

-------------

参考URLの内容

CreateProcessAPIをコールする際にSTARTUPINFO構造体のメンバdwFlagsに0x400(STARTF_MONITOR)を指定し、hStdOutputメンバに表示したいモニタのハンドルを代入しておくとそのモニタに表示できるというものです。
STARTF_MONITORを指定した場合、STARTF_USESTDHANDLESは無視されます。

-------------

私がテストしたところ、STARTF_USEPOSITIONフラグと併用して任意のモニタの任意の場所に表示することができました。この際、指定する座標はモニタ内の相対座標ではなく、すべてのモニタを含めた絶対座標でした。

なので、今回のプログラムは、CreateProcessの直前にMonitorFromPointで表示予定位置からモニタハンドルを取得し(モニタの存在確認も兼ねる)、その座標をSTARTUPINFO構造体に引き渡す形で実装することにしました。

お礼日時:2004/11/09 17:20

プライマリのモニタなら指定した座標にちゃんと表示できるEXEを起動してますか?



これができないEXEならウィンドウ表示後に動かすしかありません。

この回答への補足

プライマリモニタ内なら指定した座標に表示されています。

プライマリモニタの右隣にセカンダリモニタを配置しているのですが、セカンダリモニタ内の座標を指定しても、プライマリモニタ内の右端に表示されてしまいます。

補足日時:2004/11/09 09:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報