C言語WindowsプログラムでIEコンポーネントを使用する方法

このQ&Aのポイント
  • C言語WindowsプログラムでIEコンポーネントを使用したい場合、ShellExecuteを使用してIEを開く際にページの表示完了を感知する方法があります。
  • また、開いたIE内のページからテキストを取得する方法として、wininetを使用する方法がありますが、表示されているテキストが違う場合に対応できない可能性があるため注意が必要です。
  • これらの方法を活用して、C言語Windowsプログラムで単語検索アプリを開発することが可能です。
回答を見る
  • ベストアンサー

IEコンポーネントを使用したい???C言語windowsプログラム

 現在、あるwindowsアプリを製作しようとしていましてそれについての質問を させていただきたいと思いますのでよろしくお願いいたします。  環境はBCC5.5フリー。windows98SE、cとAPIを使います。 1.ShellExecuteにてIEを開いたとき、またはページを移動したとき、  IEのフレーム左下に「ページが表示されました」と表示されますが、  それを感知しする方法。  IEを開いたとき移動したときに、完全にそのページが開けるまで、  その後のプログラムを停止しないと変なことになるので。 2.開いた、もしくは開いているIE内のページのテキストを、読みこむ方法。  これはどうも、wininetというものを使って、『URLから』テキストを  読みこめるらしいのですが、この方法だと、特殊な場合、よくは解らないん  ですが同じURLでも表示されているテキストが違う場合もあったと思います  (cgiやjavaスクリプトのページ?)に、対応できないと思いますので、  現在開いている(見えている)ページからテキストを取得し、  読みこみたいのです。  何のプログラムを作ろうとしているのかと申しますと、HP(内)、単語検索アプリを手始めに計画しております。  この質問は別のところでもさせていただきましたが、そのものの回答は 現在いただけていない状態です。  自作アプリの第一号を完成させるため、何卒ご助力をお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ShaneOMac
  • ベストアンサー率39% (356/898)
回答No.1

MFC6のCHtmlViewを使えばIEのエンジンをビューとして組み込むことができるのですが、VC6以上でないとダメじゃないかな? 1. 例えばFindWindowを使ってこういう感じ char Str[128]; wsprintf(Str,"abc - Microsoft Internet Explorer"); CWnd* ieWindow=FindWindow(NULL,Str); abcのところにHTMLのヘッダータイトルを入れれば目的のウィンドウが見つかります。例えばこのページならば、「OKWeb Community - Microsoft Internet Explorer」になりますし、ページが開けなかった場合は、「サーバーが見つかりません - Microsoft Internet Explorer」で見つかります。 タイマーを組んでそこにこれを入れておいてチェックをかけていけば分かるでしょう。 でもこういう方法で目的のアプリができるかはちょっと分かりません。

andtyan
質問者

補足

 ShaneOMacさん、ご回答ありがとうございます。 今まで全く解らなかったので大きな前進になりました。ありがとうございます。 よろしければ、申し訳ございませんが、もう少しお力をお貸しいただけませんでしょうか。 >abcのところにHTMLのヘッダータイトルを入れれば目的のウィンドウが >見つかります。  とありますが、IEを開いたとき、または移動したときにプログラムにて自動で ヘッダータイトルを見つけて、それを入れることはできませんでしょうか?  検索アプリ上で、IEを起動するたび、ページを変えるたびに、手動でヘッダー タイトルを入れてください。とはできればしたくないので…。  また、IEを開いたとき、ページを変えたときに、IEのフレーム左下に 「ページが表示されました」と表示されますが、それを感知しする方法 (読みこみ等が終わる前に、ほかの自プログラムが動くとまずいので、  IEの読みこみ完了を確認するまで待つ方法)。 はございませんでしょうか? というのも、なにせ検索プログラムですので、色々と数をこなさなければいけないと思いまして。 タイマー使用では、回線や、ページ容量によって全読みこみ時間に大きな違いがあり、 安定して使えないと思います(タイマーで多く時間を取るというのもどうかと思いますし)。 私に知識が足りないばかりにおかしな質問もあるかも知れませんが、 はじめてのアプリ製作ですので、何卒ご容赦くださいませ。 よろしくお願いいたします。

関連するQ&A

  • C++のプログラムをWindows上で呼び出す

    C++のプログラムをmakefileによってコンパイルし,make ooo.exe makefileと入力することにより実行結果がコマンドプロンプトに表示できました。(コンパイラはBCC)この実行結果をWindows上で呼び出し,テキストボックスに表示したいのですが,どのようにしたらよいのか全く分かりません。どなたかお暇であればおこたえいただけると嬉しいです。学生の身分で,知識も浅く文章等に乱れがあるかと思いますが,不明な点は質問して下さったら幸いです。皆様よろしくお願いします。

  • ショートカットを開くプログラムがありません。IEを開いてURLを貼り付けるとひらくのですが。

    インターネットのページのショートカットが開きません。開くと、「どのプログラムからひらきますか」「WEBから適切なプログラムを探す」などの選択しやマークがでます。URLをIEを開き貼り付けるとひらくのですが、何のプログラムをどうやっていれればよいかお教えいただけますでしょうか。

  • VBS「開いているページ」のURLを取得したい

    VBSで、「現在開いているIEのページ」のURLを取得する方法、 もしくはそれが載っているサイトなどはありませんでしょうか? http://www.happy2-island.com/vbs/cafe02/capter00706.shtml を参考にしながらやってみたのですが、 「現在開いているページ」の取得方法がどうしてもわからず… 使用方法としては、 (1)IEのツールバーにオリジナルのアイコンを作り、 (2)それがクリックされた際に表示されていたページのURLを、テキストファイルに保存。 というスクリプトを作りたいと思っています。 初心者で、ネットや本で調べ調べやっているのですが、 中々うまくいかず…。どうかご助力お願いいたします。

  • IE「新しいウィンドウで開く」

    IEで『新しいウィンドウで開く』という作業をすると、ウィンドウ枠は立ち上がるのですが、右上の絵が動きつづけたままいつまでたってもページが表示されませません。 この作業をしたときだけでなく、いろんなページ上でクリックしてリンク(?)が新しいウィンドウで開くように設定されているものも枠だけ立ち上がってページ表示はされません。 さらに、メール(Outlook Express)で、URLとかが送られて来てもアドレスをコピペしないとページを開くことができません。 以前はこれらすべてのことが問題なくできていました。 解決方法を是非教えてください。 OSはWin98で、IEは6.0だと思います。 よろしくお願いします。

  • 同じIEのウィンドウで、リンクの内容だけ変更したいのですが

    VC超初心者です。 Visual C++ 2005 Express EditionのWin32コンソールで作成しています。 ShellExecute()関数でIEを起動することはできたのですが、同じアプリで2回目に起動しようとすると、新規のIEブラウザが立ち上がってしまいます。これを既存IEウィンドウでリンク先だけ変更するには、どうすれば良いでしょうか? アプリは、コマンドプロンプト上で「xxx.exe #####」と入力しENTERを押すと、「http://localhost/index.html?id=#####」というURLでIEを起動する、といった単純なものです。 アプリはそのまま終了してしまうのでMutexでは無理なのだと気づき、皆様のお知恵を拝借したいと思っております。 よろしくお願いいたします。

  • IEでファイルを開くために使うプログラムについて

    IEでWEBページを観覧するさい、(標準?)で使うファイルを開くプログラム名は何でしょうか? と言うのは、先ほどIE7からIE6に戻したら、デスクトップに作成したアイコン(IEのアイコン以外)からサイトに行けなくなってしまい毎回プログラム選択画面が出てその一覧から「XML Editor」と言うやつを選びようやくサイトに行けるわけなんです。 それからメールに記入されてるURLなどをクリックしてもページに行けません。 でも初めにIE6を起動してからなら問題ないのですが・・。 どこか設定のミスなのでしょうか?

  • Windows7、64ビットにIE8を入れたい

    いまWindows7を使用しております。購入したときはIE8がインストールされていました。 その後、IE9が使いやすいと聞いたのでこれをインストールしました。が、使っているとIE8で見れたページが見れなくなり、マイクロソフトのページからIE8をダウンロードしてインストールすると、サポートしていないとか表示されIE8のインストールはできません。 IE8はプログラム一覧にあったのでアンインストールしました。 IE8をインストール方法をご教授お願いします。

  • IE8で読み込みが完了したウィンドウが強制的に表示されてしまう。   

    IE8で読み込みが完了したウィンドウが強制的に表示されてしまう。    Windows VistaでIE8を使っていると、いくつか使用か不具合なのかわからない現象が起きてしまいます。たとえば、あるページを読み込んでいる間に他のプログラム(ワードやテキスト等)を使用していると、ページの読み込みが終わった際にIEのウィンドウが強制的に表示され、いやがおうにもテキストやワードなどでの作業が中断されてしまいます。他にも画像を別ウィンドウで開いたりすると、画像の読み込みが終わるとその画像のウィンドウが強制的に表示される、お気に入りタブを開いていたのが強制的に閉じられてしまうなど、使っていてストレスがたまることが多いです。このIEのウィンドウの強制表示を防ぐ方法はないでしょうか?

  • PHPにてC言語プログラムを呼び出す方法

    PHP言語内でC言語プログラムを呼び出す方法があると伺ったのですが、どうすればいいのかご存知でしょうか? いくつか試して見たのですが、ソースコードをテキストとして表示するものばかりでして・・・

    • ベストアンサー
    • PHP
  • VB.NETで、プログラム上から新しいウィンドウを開くをする方法

    HyperLinkコントロールを使って NvigationURL=移動先URL target=blank で、新しいウィンドウでページを表示はできるのですが、 プログラム上で、これと同じことをしたいんです。 どのような命令文でやればよいのでしょうか? ボタンを押したときに、プログラムを走らせてから最後にジャンプしたいんです。

専門家に質問してみよう