コマンドプロンプトにテキストを送る方法

[戻る]
レモ 2007/07/28(土) 12:35:40
初めまして。VC初心者ですが宜しくお願いします。

既に開かれているコマンドプロンプトにテキスト(文字列)を送ろうと思い、
  HWND hwnd;
    hwnd = FindWindow("ConsoleWindowClass", NULL);
    SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)("hoge"));
として実行してみたのですが、コマンドプロンプトのウィンドウタイトルが変わってし
まいます。
良い手法がございましたらご教授願います。

Ban 2007/07/28(土) 18:58:03
# 実行するWindowsのバージョンでも挙動/仕様が違うことがありますので、
# 条件を示すべきと思います。

Consoleアプリはちと特殊なので、普通にHWNDとか使ってもダメです。
Console上で、受信待機してるプロセスでも動作していない限り、
基本的には、自分が属さないConsoleには書き込みはできないかと。
自分と通信できるプロセスか、自分自身をそのConsole上で動かして
パイプやリダイレクトなどをする必要があると思います。

# 自分が起動したConsoleや、Consoleから起動された場合は、
# 継承の設定ができるのですが、そうでないConsoleは基本的に
# Consoleの内部で閉じてるはずなので…。

Ban 2007/07/28(土) 19:19:11
出先なので未確認ですが、フォーカスを与えて
キーイベントを起こすのはいけるかもしれないです。
SendInput API

レモ 2007/07/30(月) 07:09:09
[[解決]]
ご回答ありがとうございます。
キーイベントを起こすことでconsoleに文字を送ることができました。
ありがとうございました。

古いスレッドには追加発言できません。