キーイベント


Mr.Ω  2005-03-16 05:37:38  No: 13771

Delphi6パーソナルで、アプリケーション作ってます。
常駐アプリにしたいので、Form1を、application.showmainform:=false;で消してるんですが、そうすると、オンキーダウンとかのイベントが発生しなくなってしまうんです。  誰か分かる方、ぜひご教授お願いします。


たかみちえ  URL  2005-03-16 06:40:48  No: 13772

KeyDownなどのイベントは、イベントを設定したフォームにしか機能しません。Windowsは、フォームにキーが押されたなどの通知を送り、VCLはそれをイベントとして、プログラマに操作できるようにしているだけだからです。

  メインフォーム以外の(自アプリケーション内の)フォームのキーイベントを知りたい場合は、そのフォームにイベントを設置します。それ以外の(自アプリケーション以外の)場所のキーボード入力を知りたい場合には、システムフックする必要があります。


Mr.XRAY  URL  2005-03-16 06:56:23  No: 13773

>誰か分かる方、ぜひご教授お願いします。

何が分かればいいんですか.
何かキー押したら,そのFormのOnkeyDownが発生させたいのですか.
それはできません.ちょっと考えて下さい.

常駐アプリですよね.それが常駐している時に,例えばワードを操作
するとします.キーを押したら,貴方のFormにキー操作がいってし
まったら,ワードが操作できなくなります.

もし,特定のキーまたはキーの組合わせを検出するのであれば可能です.
ただし,この場合,常にPC上で操作したキーを監視する仕組みが必要です.


Mr.XRAY  2005-03-16 06:59:21  No: 13774

発言を眺めている間にすでにレスがありましたね.
で,間違いに気づきました.

>もし,特定のキーまたはキーの組合わせを検出するのであれば可能です.

でなくてもいいんですね.常に監視するわけですから.


Mr.Ω  2005-03-16 08:03:01  No: 13775

皆さん説明不足ですいませんでした。

僕がやりたいことは、常駐アプリでキーを押したら「〜」が押されました。
って言うダイアログを出すようにしたいんです。

どのような方法でもいいんですが、なるべく簡単なやつをお願いします。


Mr.Ω  2005-03-16 08:05:48  No: 13776

>>Mr.Xray様
追記です。。  全てのキーを監視するようにしたいです。


メラトニン  2005-03-16 09:41:00  No: 13777

ここの本元の
http://madia.world.coocan.jp/delphi/index.html
Delphi - 過去のTips集
特選サンプル集
システム全体に影響を及ぼす強力なフックの方法http://madia.world.coocan.jp/delphi/tokusen.htm
がまさにそれです。
Mr.Ωさんが一番最初に書いた文章を読んだ限りでは、もう少し修行を積んでから扱うべきとは思いますが…


Fusa  2005-03-17 04:52:02  No: 13778

動く環境と動かない環境がありますか?

WinXP D2005で動いたのですが
Win2KServer D2005では変に誤動作してIDEごと落ちたりするような
状態でした。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加