• ベストアンサー

ActiveX の WebBrowser コントロール上で、フォームのボタンを「クリックする」動作

ActiveX の WebBrowser コントロール上で、フォームのボタンを「クリックする」動作をソフトで行いたいのですが、方法をご存知の方がおられましたらご教授いただけませんでしょうか。目的は Webからのフォーム入力を支援するソフトの作成です。 以下のようなケースを想定しています 1.Webからフォーム入りのページを WebBrowser コントロールで取得し 2.取得したドキュメント内の文字入力欄等にデフォルト値を差し込み 3.加工したドキュメントをWebBrowser コントロールに戻し 4.そのままフォームの送信ボタンを押された動作を行う ことにより、必要な情報を誤りなく入力できるようにするものです。 Navigate や Navigate2 で、直接フォーム入力を送信するのではなく、あくまで「クリックしたことにする」方法をとりたいと思っています。 なんとなく、セキュリティへの配慮からサポートされていないのかな?という気もしなくないですが、ご存知の方がおられましたら教えていただければと思います。 環境は IE5以降、VC++ (MFC)で作成しています。(VS6)

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

  • ベストアンサー
  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.1

中身はHTMLなので、 できなかった記憶がありますが。 前に同じようなプログラムを組んだことがありますが、 postMessageのAPI関数を呼び出し、処理を行いました。 HTML内のオブジェクト名を取得できなかったので、 そういう方法を取りました。

ito820
質問者

お礼

IHTMLElement の click() で出来ました。ありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

form オブジェクトを取得してsubmit() を呼び出す。 送信ボタンオブジェクトinput type="submit" を取得してclick() を呼び出す。 って感じでできたように思います。

ito820
質問者

お礼

IHTMLElement の click() で出来ました。ありがとうございました。

関連するQ&A

  • ActiveXコントロール

    メールアドレスを提示されたので、クリックすると 「このwebページでActiveXコントロールをして下さい」 と出て下に「OK」ボタンが出ます。OKボタンをクリック するとエラーになります。この場合ActiveXコントロール をどのようにすればいいのかお教えください。

  • vb2005のWebbrowserコントロールでSubmitすると動作

    vb2005のWebbrowserコントロールでSubmitすると動作がおかしいのですが Browser.Navigate("http://hyperlink.xrea.jp/regist.php") Do While Not Browser.ReadyState = WebBrowserReadyState.Complete Application.DoEvents() Loop Browser.Document.All.GetElementsByName("site_name")(0).InnerText = "test"           ・           ・ Browser.Document.Forms(0).InvokeMember("submit") このようなソースなのですが、submit後のページが <div id="copyright"> Copyright By ***</div></body></html> のように、最後の方しか返してこないのです。 手動でsubmitボタンをクリックすると大丈夫なのですが、なぜだかわかるでしょうか?

  • WebBrowserコントロールで

    navigate,navigate2関数には引数でpostがありますが、これはどのように使用するのでしょうか?postで送りたいデータをそのまま入力しましたがうまく動きませんでした(id=xxxなど)。 またIDとPasswordを自動的に入力してOKを押すようなプログラムを作成したいのですが、ブラウザコントロール上のフォームのテキストの中にIDやPASSを入れるといったことは可能なのでしょうか。 よろしくお願いします。

  • WebBrowser内のフォームをsubmitする(VB2008)

    VB2008でWebBrowserコントロール内のsubmitボタンを以下のコードでクリックしようとしているのですが、 WebBrowser1.Document.Forms("フォームの名前").InvokeMember("submit") NullReferenceExceptionはハンドルされませんでした。 オブジェクト参照がオブジェクト インスタンスに設定されていません。 というエラーが出ます。 ボタンがフォームの中ではなく、tableの中に配置されているようで、idも指定されておらず、nameとvalueだけ指定されているのですが何か方法はないでしょうか。 どなたかお願いします。

  • ActiveXコントロールの作成(VB6)

    こんばんは。 今、VB6でActiveXコントロールを作成しようと思っています。 現在、標準EXEにて、プログラムが作ってあります。 動作としては、 1.スタートボタン(CmdStart)で開始 2.処理(外部の測定器によるデータ収集) 3.終了ボタン(CmdEnd)にてプログラム終了 です。 これをもとに、ActiveXコントロールを作成したいです。手元にある文献にしたがってほぼコピー&ペーストで作成しました。また、これの動作を調べるため、標準EXEのフォームを作成し、そのフォームにActiveXコントロールを貼り付けました。 ここで質問です。 Form_LoadはUserControl_Initializeに書き換えました。(これは文献に載っていました) 最後のプログラム終了がうまくいきません。 標準EXEでは Private Sub CmdEnd_Click() Unload Me End Sub と書いてプログラムを終了させていました。 ここを書き換えずにActiveXコントロールを実行させたらエラーが出ました。"Unload Me"を"End"に書き換えてみたら、サポートされていないと出ました。 CmdEndをクリックしてプログラムを終了させるにはどう書けばいいでしょうか? よろしくお願いします。

  • activex コントロール

    相談をお願いします。 ホームページビルダー9でHPを作成しているのですが、 プロバイダ(ocn)よりテストアカウントを発行してもらい、 作成途中のHPを確認しようとしておりますが、 確認用アドレスをクリックすると 「このWebページでactivexコントロールを実行するにはクリックしてください」というメッセージが出てクリックすると 確認用HPアドレスに戻り、トップ画面が見れません。 インターネットオプションでcookの削除また一時的ファイルの削除を しても見れません。 インターネットオプションのactivexコントロールを変更しても見れません。 マイクロソフトのactivexコントロールの互換性の修正プログラムを入れても 直りません。 どうしたらようでしょうか?お手数ですがよろしくお願います

  • WebBrowserコントロールでExplorerのようなものを作りたいのですが困っています

    VB.NET2008にて、開発中です。 WebBrowserコントロールを使用してExplorerを作っているのですが、たとえば WebBrowser1.Navigate("C:\Users\" + Environment.UserName + "\Desktop") とすることによってコントロール上にデスクトップにあるファイルが表示されますよね? そこで、表示されたファイルのうち1つをを選択し、そのファイル(もしくはディレクトリ)のフルネームを取得したいのですが、どうもやり方がわかりません。 どなたかこの方法を知っている方、いらっしゃいませんでしょうか?

  • フェオームコントロールとActiveXコントロール

    VBAについての質問です。 Excel2013を使っています。次のような場合に不具合があります。 sheet1上にフェオームコントロールのボタンを配置し、ユーザーフォームを呼び出します。 ユーザーフォームにはコマンドボタンを配置し、コードは Worksheets("Sheet2").Select です。 実行すると、Sheet2に画面は変わりますが、セルに何かを入力すると、入力したはずのものがすぐ 消えて、しまいます。スクロールもできません。 実際には Sheet1 に入力されています。 sheet1上のボタンをActiveXコントロールのコマンドボタンを使用して、同じユーザーフォームを呼び出し実行すると、正常に作動します。 この現象は、2010以前のバージョンだと、どちらも同じ動作をすると思います。すべてを調べたわけではありませんが。 12月10日(水)の更新後、Excel2013ではActiveXコントロールのコマンドボタンが使用できなくなったと思いますが、VBAに詳しい方で、何か解決策をご存じの方、アドバイスをお願いします。

  • submitボタンはActiveX コントロール?

    win7を使っています。 自分でタグを手打ちして作ったHTMLドキュメントを IE9で開くと、画像のように 「スクリプトやactivexコントロールを実行しないよう、Internet Exploreで制限しています」 と表示されます。 これをクリックしないと <input type="submit" value="TOPへ" style="cursor:pointer" onClick="location='#top'"/> をクリックしても、リンク先へ飛べないので、許可してるのですが IE9を立ち上げるたび、確認画面が出てきます。 ずっと許可する方法はありますか? 毎回毎回ボタンを押すしかないですか? そもそも上のソースのsubmitボタンは、ActiveX コントロールなのでしょうか?

  • VB2005のWebBrowserで”クリック”する

    VB2005のWebBrowserを使い、楽天ブログをランダムボタンを自動で押して、ペラペラめくっていきたいと思い、下記プログラムを組みました。 しかし、実際実行すると、プログラムが強制終了。「問題が発生したため、○○.exe(プログラム名) を終了します。 ご不便をおかけして申し訳ありません。」 となってしまいます。 原因、解決策、もしくは代案を教えていただきたいです。 よろしくお願いいたします。 プログラム '楽天ブログの自分のページにアクセス WebBrowser1.Navigate("http://plaza.rakuten.co.jp/○○○○○") 'ランダムボタン(右上のボタン)をクリック WebBrowser1.Document.GetElementsByTagName("a").Item("ランダム").InvokeMember("click")