非アクティブのときにキー入力を受け付ける への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 るきお  () 投稿日時 2008/7/2 07:29:00
>結果的にはアプリケーションを起動していないとキー入力は受け取れないんですね。 
さすがに起動していないと無理ですが、たとえば、ショートカットにホットキーを設定してOSから呼び出してもらうとか、あるいは非表示でひそかに起動しておいてキー押下に反応するということは可能です。 
 
フォーム自体はアクティブでなくても起動さえしていればキー入力は取得できます。 
そのための仕組みはいくつかありそうですが、伝統的なところでは「ホットキー」というものがあります。 
残念ながら.NET Frameworkではサポートされていないようですが、WindowsAPIを呼び出せばVBからホットキーを制御できます。 
 
未検証で申し訳ありませんが、検索すると以下のサンプルがヒットしました。どうでしょうか? 
http://smdn.invisiblefulmoon.net/ikimasshoy/dotnettips/tips025.html 
 
それから、brvさん。しばしば書き込んでいただいてありがとうございます。今後もよろしくお願いします。
投稿者 brv(質問者)  () 投稿日時 2008/7/2 06:24:00
ありがとうございます。結果的にはアプリケーションを起動していないとキー入力は受け取れないんですね。このサイトのどこかの「ウイルスに感染してしまいました」という記事で「ウイルスがレジストリを書き換えてWindows起動時に自分自身を起動させる」というような内容があったと思いますが、この類の方法でも同じことはできるのでしょうか?
投稿者 brv(質問者)  () 投稿日時 2008/6/15 00:10:00
ありがとうございます。すみませんが、今は少し勉強が忙しいので、後でじっくり拝見させていただきます。
投稿者 魔界の仮面弁士  () 投稿日時 2008/5/27 17:14:00
「DirectInput」について調べてみてください。
投稿者 temp  () 投稿日時 2008/5/27 01:02:00
ここらへんか? 
 
http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=7609&page=0
投稿者 brv(質問者)  () 投稿日時 2008/5/25 06:59:00
>アプリケーションが起動していないのであれば、受け取り側もないのでは・・・?  
たとえば Google デスクトップ はCtrlキーを二回押すと簡単に起動できますよね。あんな感じにしたいんです。 
 
>これは、アクティブフォームでキーを受け取り  
他のアプリケーションのウインドウがアクティブになっているときはどうすればいいのでしょうか? 
 
刈谷勇さん、説明が分かりにくくてすみません。ありがとうございます。
投稿者 刈谷勇  () 投稿日時 2008/5/25 03:43:00
詳細がわからないので外していたら、すみません。 
 
>アプリケーションが起動していない時 
アプリケーションが起動していないのであれば、受け取り側もないのでは・・・? 
 
>フォームがアクティブでないとき 
これは、アクティブフォームでキーを受け取り、非アクティブの 
方の処理関数を呼び出せばいいのでは・・・
投稿者 brv(質問者)  () 投稿日時 2008/5/24 21:50:00
追記です。VBのバージョンは2005のAcademic Editionです。
投稿者 brv(質問者)  () 投稿日時 2008/5/24 21:48:00
アプリケーションが起動していない時やフォームがアクティブでないときもキー入力を受け付けられるようにするにはどうしたらいいでしょうか?よろしくお願いします。