• ベストアンサー

[submit]ボタンの実行

Win32API(InternetOpen,InternetOpenURLなど)を使用して取得したHMTL内の[submit]ボタンをプログラム上から直接実行したいのですが、どうのようにしたら良いのでしょうか? BrowserコンポーネントやIEを使用して[submit]ボタンをクリックさせる等のやり方ではなく、APIを使用して直接実行するようなやり方を教えてください。 環境はDelphi6を使用しています。 よろしくお願いします!

  • amzel
  • お礼率100% (2/2)

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

  • ベストアンサー
  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.1

Submitボタンの上位にある<FORM>タグのmethodがPOSTかGETかを見てactionに書かれているアドレスにTELNETで接続してHTTP手順でメッセージを書き込めばよい。 書き込み値は<FORM>タグ以下の<input>タグのnameとvalue。 HTTPのPOSTリクエストの手順はRFC2616で規定されています。 PROXYを通す場合と通さない場合でリクエスト手順が異なりますので要注意。

amzel
質問者

お礼

ご回答ありがとうございます。 現在、テストで実行しているページの<FORM>タグは以下ようになっています。<form name="frmMain" method="POST" action=""> [Submit]ボタンの実行処理は<input>タグ内の[onClick]にJavascript関数を当て込んで実行しているようなのですが、当方では[Submit]ボタンを実行する事で当て込まれているJavascript関数を実行したいと考えているのですが、どうでしょう? 可能でしょうか? よろしくお願いします。

その他の回答 (1)

  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.2

要求が矛盾しています。 1)BrowserコンポーネントやIEを使用して[submit]ボタンをクリックさせる等のやり方ではなく、APIを使用して直接実行するようなやり方 2)[Submit]ボタンを実行する事で当て込まれているJavascript関数を実行したい 結局IEコンポーネントを利用したいのかしたくないのかわかりません。 IEコンポーネントを利用したくないのであればJavaスクリプトの互換機能を自分で実装するしかありません。

amzel
質問者

お礼

2度のご回答ありがとうございます。 -->要求が矛盾しています。 そうですね。質問の仕方が良くありませんでした。 具体的には、 InternetOpen、 InternetConnect、 HttpOpenRequest、 HttpSendRequest でHTTPのPOST命令を実行するところまで行き着きましたが、 その場合に、指定のJavascript関数をPOST命令として送る方法はありますでしょうか? よろしくお願いします。

関連するQ&A

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

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

  • ボタンを押さずにボタンを押すには?

    例えば、 <input type="submit"name= "cmdgo" value="実行"> という実行ボタンがあって、このボタンを実際には押さずに プログラムの中で押すということはできないのでしょうか? よろしくお願いいたします。

  • GETだと初回しかSubmitが実行されない

    テキストフィールドに入力し、検索ボタンを押すと、DBを検索し 値を表示するプログラムをphpに <? if($submit){ (データ取得) $cd = "test" } ?> <form action="XX" method="post"> <input type="text" name="cd" value="<?=$cd;?>"> <input type="submit" value="検索"> </form> のように記述してます。 ボタンを押すとサブミットされDBより取得した内容「test」と表示され、何度押してもリロードされtestと表示されるのに、 methodをgetにすると、2度目以降何度押しても リロードされている様子がありません。 フィールドのテキストを換えて押しても 反応していないようです。 1.なぜgetだと1度目しかSubmitが動かないのでしょうか? 2.どうしたらgetでリロードができるでしょうか?

    • 締切済み
    • PHP
  • submitボタンの横幅を小さくしたいです。

    私はCGIゲームを作っているのでsubmitボタンを沢山使うのですが、 8文字くらいのボタンだと横幅が広くなります(空白) filefoxでは横の空白がぴったりに表示されますがIEのみ駄目です。 私は英語版PCを使用しているので、日本語版PCと表示が異なります。 CSSで指定すると日本語版PCでは一部が表示されなかったりと 不具合が多いです。どう指定すればボタンの横の空白がけせるでしょうか? アドバイスできる方お願いします

    • ベストアンサー
    • HTML
  • Submit()について

    submit()を使って画像をSubmitボタンのように使用しようとしています。 ところが、、WindowsマシンのIEでは正常に動作してくれるのですが、、 Macintoshマシン(ver10.3.9)のIE(ver5.2.3)では動いてくれません。 マッキントッシュ用のIEではこの関数は使用できないのでしょうか? 参考までに実際にソースに記述していました内容が↓下記です。 <img src="××.gif" width="47" height="18" border="0" onClick="javascript:submit();" onMouseDown="javascript:this.src='○○.gif';" onMouseOver="javascript:style.cursor='pointer';" onMouseOut="javascript:this.src='××.gif';"> お分かりになる方、是非教えてください。

  • submitで。。。

    現在、JBuilderを使ってサーブレット+JSPのWEBアプリを作っています。 悩んでいるのは、IEでバックボタンを使って元のページに戻れないようにしたいのですが、 INPUTのTYPEがsubmitの場合、うまくいかないのです。 調べてみると「location.replace()」を使えばよいようなのですが。。。 現在は以下のようにやっています。(TestServletはサーブレット) <input type="submit" action="javascript:location.replace('TestServlet') ~> <input type="text" name="T1"> <input type="submit" name="Submit" value="TEST"> このようにすると、submitボタンを押した場合、リクエストがTestServletのdoPostでなくて、doGetにいってしまうのです。 そうすると「String 値 =request.getParameter("T1");」のようにしてT1の値を取得しようとしても"null"となってしまいます。 なにか他によい方法があるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Netscape4.7でのSubmitメッソッドで非常に時間がかかる

    こんにちは  今、ASPでHPを作っているのですが、 JavaScriptで function 関数{ <-いろいろなチェック->     :      : document.Form.Submit(); } と云う関数を作成して TYPE="Button" OnClickで上記の関数を指定してます。 Netscapeの場合、ページの切替で非常に時間がかかります。 タイムオーバーになったりもします。 IEで実行すると全然問題ありません。 この差はなんなのでしょうか? 色々調べています。 例えば、 他のHPでスイスイページが切替るので 見てみると、ボタンのTYPEが"Submit"となっています。 また、ボタンクリック時にタスクマネージャーでNetscapeのCPUの 使用率をみると 98~99% となっています。 もしかしたらブラウザのバグ?とかって疑っていますが 実際の所どーなのでしょう? 知っていたら教えてください。 環境: Win2K Netscape 4.78 IE 6(SP1) よろしくお願いします。

  • 重なっているコンポの実行時優劣設定

    こんにちは、honiyonです。  Delphi5を使用しています。  例えば、フォームにボタン2つを重なるように配置したとします。  設計時であればボタンを右クリックして「背面へ移動」「前面へ移動」でそれぞれの優劣を設定出来ますが、これを実行時に行いたいと考えています。  実際はボタンではないのですが、このような重なっているコンポーネントの優劣設定(どれを表示するか)を行いたいです。  これは可能でしょうか。  可能な場合、どのような処理を行えば良いでしょうか。  宜しくお願いします(..

  • 実行時エラー336の意味を教えてください

    IE7を使用していて、『実行時エラー336 コンポーネントが正しく登録されていません』とエラーが出るようになりました。どの様に対処したらよいでしょうか?このエラーが出る前に不要と思われるプログラムをプログラムの追加と削除で削除しています。windowsXP(sp3)を使用しています。よろしくお願いします。

  • フォームのボタンをSUBMITから画像にしたいのですが…

    フォームを使って値を渡すのに <INPUT TYPE=SUBMIT NAME=WORD VALUE='*****'> とボタンを作成し、VALUEの値 (中身を確認、とか送信実行とか) で動作を分岐し、実行していました。 このボタンを画像にしたいのですが、 値を渡すのはGETじゃないと無理でしょうか? (今まではPOSTで送信) ボタンを画像にするとなると <A HREF='**.cgi'><IMG SRC='**'></A> となるので、 <A HREF='**.cgi?key=****'><IMG SRC='**'></A> のように、する必要があるのかなぁ?と思いまして… せっかくPOSTで受け取るようにCGIを作成したので、 できればPOSTのままで使用できればと思うのですが。 (無理ならGETに変更するしかないですけど) VALUEの値はボタンでは送信できないので、 <INPUT TYPE=HIDDEN NAME=WORD VALUE='****'> として渡そうと思ってます。 他に何かよい方法あるでしょうか? ※Perl使用です。

    • ベストアンサー
    • Perl

専門家に質問してみよう