アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて質問させていただきます。
Visual C++暦まだ2ヶ月の初心者が身の丈知らずかも知れない質問をすることをご容赦ください。

Tera Termを起動し、そこにmakeやCtrl-Cなどのキー入力情報を送るプログラムを作りたいと思っています。
具体的には、ダイアログベースのプログラムで、プッシュボタンをコマンド別にいくつか用意し、それらが押されると、Tera Termにキー入力があったと同じメッセージを送りたいのです。
例えば、[コンパイル]というボタンが押されたら、Tera Term上で"make"とキー入力したのと同じような処理をさせたいのです。
ここを含めいろいろなサイトを見て、起動まではなんとかできるようになりました。
ただ、起動したTera Termのハンドルの取得がうまくいかないのか、SendMessageでメッセージを送ろうとしても、::IsWindow(hWnd)というエラーが出て強制終了してしまいます。
ウィンドウにフォーカスを与えてkeybd_eventを用いると記述しているサイトもありましたが、フォーカスの与え方が分かりません……。
どなたか教えていただければ幸いです。お願いいたしますm(__)m

A 回答 (3件)

ウインドウを探すには既出のEnumWindowsでウインドウを列挙するほかに,FindWindow/FindWindowExを使う

方法があります.
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。
他にやるべきことがたくさんできてしまい、
みなさんの貴重なアドバイスを試してみる時間がありません(-_-;)
ですが、近いうちになんとか試してみます。
本当にありがとうございます。

お礼日時:2005/12/23 17:50

EnumWindowsを使って、コールバック関数の中でウインドウのタイトルを取ってきて(=GetWindowText)Tera Termかどうか判定してウインドウハンドルを得る、というのではどうですか?


それとKEYUP/KEYDOWNのメッセージ送信ならSendMessageではなくPostMessageになると思いますよ。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。
EnumWindowsなどの使い方が分かっていなかったので、
具体的な流れを提示していただき、少し理解が深まりました。
VC++はC++とはかなり毛色が違って、やりにくいです。。。

お礼日時:2005/12/22 08:30

ウインドウにキーボードフォーカスを与えるにはSetFocus(hWnd)を使えばよいと思います.

    • good
    • 0
この回答へのお礼

御回答ありがとうございます。
SetFocusが使えそうだという事が分かりました。
ウィンドウハンドルの取得がうまくできないので
まだ確かめることができないのですが、
ようやくお一人でも答えていただいたことでホッとしました。
ありがとうございました。

お礼日時:2005/12/18 22:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!