• 締切済み

子プロセス(EXEファイル)が要求する文字列(パスワードなど)へ代入する方法

VC++にて、親プロセスから子プロセス(EXEファイル)をCreateProcessで起動し、 子プロセスが要求するダイアログ(文字とOKボタンのクリック)への入力を親プロ セスから制御する方法を教えてください。

みんなの回答

回答No.1

んー、これはどっちなんだろ……。 子プロセスが自分で作るプログラムなのかってあたりがキーになります。 親子ともに作るのでしたら、これはインターフェイスは色々考えられますが、どうとでもなるかと思います 子プロセスが(プログラムをいじれない)既存のものだとしたら、これはちょっと面倒なことになりますねー。その子プロセス次第ってところでしょうか。子プロセスがある特定のEXEだとしたらそのEXE次第ですかね。んでもこの場合厄介は厄介ですよ。OKボタンならOKボタンのHWND取る方法から必要になりますから、結構段階があります。 てなわけで、子プロセスの性質とか、どの辺まで実現できているのかとかその辺の補足を頂きたいです、はい。

buden
質問者

お礼

ご解答ありがとうございます。 さて、子プロセスは自分のプログラムではありません。つまり、親のプロセスのみ作成し、既存の外部プログラム(これが今回の子プロセス)を呼び出しての話です。 現状はSendMessageを使って子プロセスのダイアログの文字入力フォーカスへ目的の文字列を送信(代入)するところまではなんとかできましたが、Enterキー入力の送信ができないところで止まっています。 というのも、VBではSendKeyにてEnterキー入力を簡単にできるようですが、VC++にはこの関数がないため ak1さんの言われるように「OKボタンのHWND取る方法」となるのでしょうか? つまり、通常の文字入力があるダイアログの場合EnterキーにてOKボタンのクリックと同様の動作となると思いますので、SendKeyのような関数を作ってEnterキーを送信すればよいのではと考えていますがいかがでしょう。 ただ、SendKey関数の仕組みが分からないので作れないのが現状ですが...