• ベストアンサー

特定のウィンドウに対するマウスやキーボード操作を制限する方法

Windows上で動くGUI自動操作ツールを作ろうと考えているのですが、 一箇所懸念点がございます。 AというGUIアプリをプログラムから自動操作しようとした際に、 以下のようになる認識です。 1.自動操作ツールよりプログラムAを起動する 2.Aのウィンドウがオープンしたら、Aのウィンドウ上のコマンドボタンや テキストボックスに対して、Win32APIの擬似マウス移動命令や、 擬似クリック命令を送信して自動操作する。 3.自動操作ツールよりプログラムAを終了させる ここで、上記手順の2にてAのウィンドウを自動操作しているときに、 ウイルスチェックアプリなどの別のアプリがウィンドウを最前面 で開いてしまったとき、擬似マウス・キーボード命令がすべて その新たなウィンドウに行ってしまいます。 このような状況を回避するにはどのような手法があるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taku2888
  • ベストアンサー率60% (15/25)
回答No.2

AというGUIアプリのハンドルに対してPostMessage等を行います。

その他の回答 (1)

  • dease
  • ベストアンサー率0% (0/7)
回答No.1

誰も返事してないからこのまま流れてほしくないので回答します。 自分もかなり初心者なんで、回答ではなく、 もしかしたらこんな方法でできるんちゃう? といった感じのことを書かせていただきます。 この投稿を読んでパッとすぐに浮かんだ方法は、単純ではありますが、 マウス・キーボード命令を送る直前で、そのウィンドウがアクティブに なっているか確認して、そうでなければアクティブにさせる、というやり方です。 たぶんそんなことを実現できるAPIがあったとおもう。 もう一個のやり方思いついてたけど忘れちゃったw

rotofrot
質問者

お礼

回答ありがとうございます。 確かにそれで大体はうまくいきそうです。 ですが、アクティブであることを確認して、命令を送信する 隙間に別のウィンドウがアクティブになってしまうことが 回避できないように思います。 毎回命令送信時にチェックすればほぼ回避できそうですが。

関連するQ&A