Focusの移らないWindowの作り方について

[戻る]
n_n 2007/01/14(日) 00:36:22
Focusが他のアプリケーションに移らないようなプログラム(常にZ-orderがTopでしかも
Active)を作りたいのですが、どの様にしたらいいでしょう。教えてください。
環境はWindowsXPで、開発環境はC++Builder6です。
お願いします。

超初心者 2007/01/14(日) 00:40:12
TopMostに関して検索すれば情報は見つかるでしょう。
# そんなプログラムは迷惑です。
# そんなブログラムが二つあったらどうなると思います。

n_n 2007/01/14(日) 00:44:44
うーん。確かに迷惑ですが、ログインのときに使いたいのでさほど迷惑ではないかと。
ところで、TopMostでは確かに前面には表示されますが、Focusは移ってしまいます。
的外れなことをいっているかも...
参考になるサイトでも良いので教えていただけないでしょうか。

超初心者 2007/01/14(日) 02:34:30
そうかフォーカスは変わってしまうか。

しま 2007/01/14(日) 04:38:57
上手くいくかどうかは保障しないけど
A)マウスで他のウィンドーにフォーカスが移動出来ない様ににする
A1)マウスの移動範囲をあなたの希望する範囲(例えばウィンドー自身)に制限する
A2)マウスをキャプチャーしてしまうことで他のウインドーにマウス操作が伝わらな
いようにする
B)キーボード入力で他のウインドーにフォーカス移動できないようにする(例えば、
Ctrl+Tabなど)
ただ、あらゆるキーボード操作が無効には出来る訳ではない(Alt+Del+Ctrl)のであなた
の望みが100%叶うかどうかは私には分からない
A1、A2,Bを組み合わせればある程度のことはできるかもしれません

しかし、Windows の普通の動作を排除する Windows アプリケーションは私は嫌いです

Ban 2007/01/14(日) 11:37:28
# いっそ、Windows以外のOSを検討してみるとか。
# ご自分だけで使うならミス操作対策程度だと思うので、強制したい背景がよくわからず。
# 書かれてる範囲で見ると、私も迷惑ソフトにしか見えず。

ちなみに「ログイン画面で使う」ってのは、やりたいのは独自の認証とかですか?
ならば、とりあえず「GINA」とか調べてみるとちょっと幸せになれるのかも。(自己責任でどうぞ)

それ以外だと、本質的に、マルチタスクなシステム上で、
たかだか一アプリが全ての制御を簡単に占有できたらダメダメなわけで、
昨今のWindows上でフォーカスすら放さないってのは難しいと思います。

「自分のアプリからフォーカスが離れると困る」という自分だけの都合なら、
フォーカスが外れた時点で終了なりする選択肢もあると思いますが、代替は可能ですか。

n_n 2007/01/14(日) 13:39:57
[[解決]]
ああそうか。フォーカスが移ったら終了すれば良いんだ。有り難うございます。

古いスレッドには追加発言できません。