- ベストアンサー
VC++で他のアプリケーションを制御する方法
こんにちは。 VC++で他のアプリケーションを制御するにはどうすればいいのでしょうか? 例)インターネットエクスプローラのツール/オプションでできるホームページアドレス設定を、直接モニタおよび変更するプログラムを作りたい。 当方VC++勉強中のため、上記のようなことがどれくらい難しいのか知っておきたいと思い、質問させて頂きました。 たぶん、難しい回答を頂いても、チンプンカンプンと思いますので、やろうとしていることの難易度とこれらをするために勉強しなくてはいけないことを教えていただければ助かります(参考HP、書籍等)。 よろしくお願いします。 当方のレベル 初心者(Cの基本的知識はあるが、VC++は現在勉強しはじめ) 使用環境 VC++.NET,WINDOWS_XP
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VC++.NETというのはスタンダード版でしょうか。 その中にSpy++というツールが入っていなかったでしょうか? windowsアプリケーションというのはOSと「メッセージ」のやりとりを してウインドウを表示させたり、 マウスをクリックしたという情報をOSからアプリケーションに伝えています。 外部のアプリケーションを根本から操作するには、どういうメッセージをやりとりしているかを 解析する必要があります。 .netは詳しくわかりませんがVisualStudio6.0にはspy++というツールがあり、そのツールで どういうやりとりをしているかメッセージをみることができました。 コアな事がしたいなら 「Advanced Windows」の購入をお勧めします。http://www.amazon.co.jp/exec/obidos/ASIN/4756138055/ref=sr_aps_b_8/249-1268393-8011525
その他の回答 (2)
- ryuta_mo
- ベストアンサー率30% (109/354)
.NET FrameWorksかWin32APIどちらを使いますか? .NET FrameWorksだったらSystem.Windows.Forms.SendKeys Win32APIならkeybd_eventでアプリケーションにキーストロークを送信することができます。 ホームページのアドレスを取得/変更するならレジストリを直接いじったほうが早いと思います。 ホームページは HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page にあります。
お礼
回答ありがとうございます。 API使いこなせるようがんばります。
- neKo_deux
- ベストアンサー率44% (5541/12319)
思いつく方法として、 ・IEにキー操作相当のメッセージを送る。 Alt+T,O,Alt+K…などのキーを押した時に相当するメッセージをIEのウインドウに向けて送信する。 但し「モニタ」するのは困難です。画面のイメージを解析するとか、クリップボードを利用するとか、方法はありますが。 AirparkLab - プログラミングTIPS - ウインドウメッセージ http://hp.vector.co.jp/authors/VA036850/airpark/tips/#send_message ・レジストリを直接操作。 IEの[ツール]-[インターネットオプション]で設定された情報はレジストリに格納されます。 レジストリから情報を取得し、書き戻す事で設定を変更できますが、その情報のある場所、情報の格納形態が分かっているという事が前提になります。 【アダルトサイト被害対策の部屋】 - http://~.htmlに飛ばされる - 改変されたIE関連レジストリの修復 http://higaitaisaku.web.infoseek.co.jp/removecctv8.html Bravo!! - MFCでのレジストリ操作 http://homepage2.nifty.com/DSS/VCPP/MFC/Reg/MFCOpeReg.htm
お礼
回答ありがとうございました。 教えて頂いたページを参考にさせて頂きます。
お礼
SPY++ありました。 ログがでてくるので、使えるかも。。。 ありがとうございました。 本の方もとりあえず、本屋に行って立ち読みしてきます(値段が高いので、ネットで買うには少しおっかない(汗))