5

現在C++で選択されていないウィンドウにキーストロークを送信する方法はありますか?たとえば、メモ帳ウィンドウを最小化していて、ウィンドウを前面に表示せずにテキストを入力したい場合です。

私はWindows764ビットを使用しています。

4

2 に答える 2

6

を使用せずに入力を偽造することは、完全に一般的にはかなり困難SendInput()です。

はいPostMessage()、試してみることはできますが、eznme からの回答は、SendMessage. 私や他の人がここで 1 日に何度も言っているように、入力はウィンドウ ハンドルに送信されるのではなく、メッセージ キューにポストされます。

とは言っても、メモ帳ウィンドウに入力フォーカスを与えたくない場合は、偽造によってそこにテキストを取得するのが難しくなります。より適切に機能し、より使いやすい非常に単純な代替手段は、メモ帳ウィンドウのウィンドウ ハンドルを見つけて、たとえばその内容を直接変更するためにとEDITを使用することです。WM_GETTEXTWM_SETTEXT

実際、このウィンドウ ハンドルを自由に使えるようになると、膨大な数の機能が利用可能になります。

于 2011-03-06T09:12:11.143 に答える
4

もちろん: PostMessage() と SendMessage() を確認してください。これらは Windows API の一部です:

http://msdn.microsoft.com/en-us/library/ms644944%28VS.85%29.aspx

http://msdn.microsoft.com/en-us/library/ms644950%28VS.85%29.aspx

具体的には、おそらく送信したいWM_KEYUP

http://msdn.microsoft.com/en-us/library/ms646281%28VS.85%29.aspx

于 2011-03-05T18:17:09.993 に答える