• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:最前面に出すが、作業のじゃまにならない方法)

最前面に出すが、作業のじゃまにならない方法

このQ&Aのポイント
  • Win32APIを使用して、最前面に表示する方法についての質問です。
  • 回答者からは、SendMessageを利用して文字入力を行い、SetActiveWindowを使用して最前列にする方法が提案されました。
  • ただし、他の作業を行っている際に邪魔になることや、入力がキーボードと重なってしまうこともあるため、バックグラウンドのまま文字を入力する方法を求めています。

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

  • ベストアンサー
回答No.1

 こんにちは。  keybd_event関数の入力を受け付けていると言う事は、少なくともDirectInputにて入力を拾っている訳ではなさそうです。  http://oshiete1.goo.ne.jp/qa810764.html  中にはWM_KEYUPにて反応するアプリもあるので、WM_KEYDOWN→WM_KEYUPを順番にポストして見ては如何でしょう。  バックグラウンドの対象ウィンドウに対してキーを押下げる方法は、当方の経験談で言えば、 ・SetWindowHookEx()によるローレベルキーボードフック(WH_KEYBOARD_LL)  http://msdn.microsoft.com/ja-jp/library/cc430103.aspx ・DirectInputとスレッドによる定期的なキーボード入力の確認  http://msdn.microsoft.com/ja-jp/library/cc351697.aspx  辺りです。  前者はグローバルフックです。グローバルフックには別途DLLが必要ですが、ローレベル「キーボード/マウス」フックに関してはDLLを必要としていないので、手間要らずで単純です。  フックプロシージャ内で、ターゲットのアプリに向かってWM_KEYDOWN→WM_KEYUPの順番にメッセージをポストします。  DirectInputに関してはコールバックでは無い為、自前で定期的にキーボード入力の確認をしなければいけません。  定期的な監視にはスレッドを使用する以外に、WM_TIMERやtimeSetEvent()の様な簡単なタイマーコールバックでも構いません。  入力を検出したら、前者と同じくターゲットのアプリに向かってWM_KEYDOWN→WM_KEYUPの順番にメッセージをポストします。  又、DirectInputデバイスを作成する際の協調モードは、DISCL_NONEXCLUSIVEとDISCL_BACKGROUNDの組み合わせにします。  http://msdn.microsoft.com/ja-jp/library/cc351722.aspx  どちらにしろ、ターゲットのアプリに向かってメッセージを送るかポストするかしないといけないので、本当にメッセージを受け付けないアプリならば、お手上げと言う事になります。

nazotarou
質問者

お礼

DirectInputをちょっと、調べてみようかと思います。 やはり、深い技術が必要そうですね。 アプリの名前もかかなかったのにも関わらず、対応していただいたことは、感謝しています。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • フォーカスの移動

    IMEソフトキーボードのようなものを作っています。 フォーム1にテキストボックスがあり、フォーム2をソフトキーボード。というように作りたいと思っているのですが問題があります。 コマンドボタンを押すごとに1文字ずつ送るような作りになっているのですが、1文字ごとにテキストボックスからコマンドボタンにフォーカスが移るため、2文字以上の文字列の変換ができないのです。VB的に無理なのかもしれないですが、IMEソフトキーボードのようにテキストボックスにフォーカスをセットしたままの文字入力を出来ないでしょうか?ちなみにkeybd_eventを使っています。 時間がありましたら、ご教授のほどよろしくお願いします。

  • 作業自動化のフリーソフトを教えてください!

    毎日面倒な作業をして、疲れました。 アプリケーションを使い、前日の日付を入力してOKを押すだけなのですが、 個数が多くて… 前日が休日の場合は、仕事日までさかのぼった日付を入力したり。 (8/5(月) →8/2(金)、8/4(日))と入力したりしないといけません。 そこで、フリーソフトを使用して楽にしたいと思ったのですが、 作業では一つだけ面倒なことがあるんです。 日付が一定ではないことです。 マウス自動化をして、 キーボードの部分だけ一括して手入力できるようなフリーソフトが欲しいです。 (例 1回 8月4日とキーボードから打ってしまえば、その先も8月4日と打つ) そのような便利なソフトがありましたら、教えてください。 よろしくお願い致します。

  • 「バックグラウンドの作業中」が頻繁で。

    はじめまして!VL500/3D XP/HOME/SP2を利用しています。マウスポインタが「バックグラウンドの作業中」状態になり、WINDOWSのオープンクローズはもちろん、WORDやEXCELの入力作業も思うようにできなくなりました。ウイルスソフトのインストールが原因かと思いましたが、アンインストールしても症状は変わりません。メモリは256MBのままです。デフラグやデスククリーンアップをしてもだめでした。初期に戻すしか方法はないのでしょうか?どなたか対策方法をお教えください。

  • キー入力作業の疲れはいつまで?

    テープ起こしの作業でキーボード入力を1週間ほどしていたところ、指の力が抜けてしまって早く打つことができなくなってしまいました。 効率が悪いのでしばらくして、治ってから作業を再開しようと考えているのですが、締め切りもあるので治るまでどれくらいの期間が必要であるのか知りたくて質問しました。 回答よろしくお願いします。

  • APIと呼び方であっているのか?

    Android のアプリを作る場合に、例えば写真をアップロードしたい 現在時刻を表示したい キーボードを使わずに、音声で文字を入力する など、多くのアプリに共通するようなものは APIと呼ぶのでしょうか? 時計API 音声入力API と呼ぶのでしょうか? それとも別の呼び方ですか?

    • ベストアンサー
    • Java
  • 作業が途中で止まる

    ノートパソコンで作業途中で、約5分に1度ぐらいの間隔で3~5秒止まり、また動き出します。EXCELだけでなく、その他のソフトでも同様の症状が表れます。マウスだけでなく、キーボード入力においても、止まります。 ACアダプターの接触がわるいのか、それともOS(Windows98se)自体の問題なのか?再インストールはできるだけ避けたいのですが、やらざるを得ないのでしょうか? 何か原因を探る方法はないでしょうか?お教えください。

  • Win32 API エディットボックス内文字列の色変更

    Win32 APIについて質問です。 (Microsoft Visual Studio .NET 2002、XP、API) エディットコントロールに表示されている文字列の 色(またはフォント)を変更したいと思っています。 エディットボックスに「0」という数字を入力し その後「更新ボタン」をクリックすると、「0」の 文字色が赤色(または赤太文字)へ変更される という具合です。 Win32 APIを始めて間もない者(Cも始めて間もないです) なので、かなり苦戦しております。 「SendMessage() 」みたいな関数を使用しエディット ボックスのハンドルへメッセージを送ることで 実現させるのかなぁ程度しか理解しておりません。 ご存じの方すいませんがよろしくお願いします。

  • 入力作業を楽にしてくれるこんなソフトありますか?

    会社で専用のソフト(インターネットでつながってます)で入力作業をしています。特殊な文字やマークなど外字が登録されています。これらを使うには、一度それを使いためのボタンをクリックして、一覧を表示します。このワンクリックで一覧を表示するのに結構時間がかかります。「テキスト」に外字をコピーして使うことができないかやってみましたが、外字がコピーできませんでしたし、テキストではソフトを入力している時は消えてしまいます(最小化される)。外字がコピーできて、作業中にも画面に表示できるようなことができるソフトなんかありませんか?

  • 【再】Paint Shop pro7 文字入れ作業し始めると突然ソフトごと消える!

    http://oshiete1.goo.ne.jp/qa3397935.html 上記のページで質問したのですが、少し作業をしてるうちに、やはりまた消えてしまうようになってしまいました・・・>< 症状は全く同じです。何度もすみませんがお助け願います。 【抜粋】 『Paint Shop pro7 文字入れ作業し始めるとソフトごと突然消える!』 タイトルの通りなのですが、文字入れ作業し始めると突然消えるので困ってます。 何度もトライしてますが、文字入れをし始めると突然ガバっとソフトごと消えます。何事もなかったように・・・ 数回は、マイクロソフトのエラー画面(ご不便をおかけして申し訳・・・という画面)が落ちた後出ておりましたが、数回出た以降は何にも出ず文字入れをしようとすると落ちるのです>< ついこの間までは、普通に使えていたのですが、原因が不明でお助け願います。 対処済:バックグランドで稼働中のプロセスが、PCに負担がかけているのかな?と思いスタートアップのプロセスを数箇所稼動しない設定にしました。(これを対処後、マイクロソフトのエラー画面がこのエラーのみ出ないように思います。) 最近インストールしたもの:デジカメソフト(オリンパスマスター2)、クイックタイム、 機種:NEC バリュースター OS:XP ウイルスソフト:AVG

  • 単純作業で入力した番号の集計

    様々な数字を入力して、入力した何番が何個なのか集計する方法や、 その作業に役立つフリーソフトを探しています。 希望の作業を判り易く「果物」で説明しますと、 りんご みかん ぶどう みかん ぶどう ぶどう みかん りんご いちご と、同じ果物が重複しても一個ずつ単品で入力します。 文字を入力したらEnter 入力→Enter→入力→Enter→入力→Enter→入力→Enter→ の繰り返しです。 すると、結果が自動的に りんご2 みかん3 ぶどう3 いちご1 と、表示してほしいのです。 今、考えてる作業は、エクセルのAの縦欄だけを使い、様々な文字を数百行書き出します。 何度も同じ番号が重複しますが、入力→Enterの繰り返しです。 すべて入力後、にエクセルで並べ替えしても、何番が何個重複したのか一目では解り辛いので、 りんご2 みかん3 ぶどう3 いちご1 と入力結果を一目で確認したいのです。 単純作業を求めているので、 入力+Enterの繰り返しだけでの作業ですが、 もっと便利な方法があれば、アドバイスも宜しくお願いいたします。