日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2019-07-25 21:12:52

Re⑤:他のプログラムを操作している状態で押されたキーを拾う

うぇいく さん

いつもありがとうございます。
使わず嫌いで文句を言わずに、ご指示の下つくってみました。
起動したら、タスクトレイをクリックして母艦を閉じないとずっと回る感じです。


#-------------ここから
!母艦設計=「母艦の可視はオフ」

母艦のタスクトレイ入れる。
母艦のタスクトレイクリックした時は
母艦の可視はオン。

オンの間

「電卓*」を窓ハンドル検索し
もしそれ <> 0 ならば、
「電卓*」を窓最前面
「電卓*」を窓アクティブ
5秒待つ

違えば、2秒待つ
#-------------ここまで

が、うまくいきません。

これを起動させてから電卓を起動し、他の画面をアクティブにすると、
起動時は(当然?)アクティブになりますが、2週目からは
下のタスクバーは光るんですが、アクティブになってくれません。

簡単なループに見えるんですが、、落とし穴にはまっているのかもしれません。
お力添えをいただけると幸いです。
OSの制限です。

基本的に、アクティブを与えることができるのは、自分がアクティブである場合だけです。
(持ってない権利はあげられない)
これは、ユーザの操作を介さずに、フォーカス(つまり、キーボードからの入力)を
奪ってしまうことで、入力内容を盗んだり、ユーザが意図しない操作を誘発してしまうことを
防ぐものです。たしか、2000かXPぐらいに変更になりました(あの頃、キーロガーとかはやりましたね)
セキュリティ上の制限なので、より便利なAPIでなんとかなる・・・というおとはありません。

が、ものすごく簡単な手としては、SendInputなどで、マウスのクリックを模倣することで、
アクティブを与えることはできる気がします(未確認)


(編集パスワード送信)

子記事

親記事 (No.727)
返信した記事(元) (No.731)

この内容(No.732)に返信

この内容(No.732)をダウンロード

この内容(No.732)のテキスト表示





www.eznavi.net