VC++.NETでHTMLを操作するには?

解決


きくたけ  2005-09-06 19:11:41  No: 58882

VC++.NETを使用して,HTMLのFORM操作(textの入力,submitの押下)を行いたいのですが,どの様な方法があるでしょうか?
よろしくお願いいたします.


YuO  2005-09-06 20:07:20  No: 58883

相当する内容を作成してGET/POSTすればよいのでは?


きくたけ  2005-09-06 23:14:43  No: 58884

YuOさん返信ありがとうございます.
POSTを用いてデータを送信しようと思います.
ヘルプを追いかけていると
CHtmlView::Navigate2
というライブラリがあり

Cstring str;
str.Format("http://home.microsoft.com");
Navigate2(str,0,NULL)

で対象のリソースに移動できる事がわかりました.
ここからどの様にPOSTを行えばよいかで停滞しています.
よろしくお願いいたします.


きくたけ  2005-09-06 23:14:45  No: 58885

YuOさん返信ありがとうございます.
POSTを用いてデータを送信しようと思います.
ヘルプを追いかけていると
CHtmlView::Navigate2
というライブラリがあり

Cstring str;
str.Format("http://home.microsoft.com");
Navigate2(str,0,NULL)

で対象のリソースに移動できる事がわかりました.
ここからどの様にPOSTを行えばよいかで停滞しています.
よろしくお願いいたします.


YOU  2005-09-08 22:36:22  No: 58886

CHtmlView::Navigate2とは、ずれますが、POSTをする方法でしたらWinInetを使えば簡単にできます。
WinInetの使い方はplatform SDK のサンプルを参考にしたり、検索すればすぐにわかると思います。

HTMLのFORM操作で、送信するPOST文ですが
操作したいHTMLをソース表示させ

<form action="/.../AAA.asp" method="post" name="R"></form>
 <table border="0">
  <tr>
    <td align="right"><b> 名前:</b></td>
    <td><input type="text" name="BBB" size="30" maxlength="20"></td>
  </tr>
  <tr>
    <td align="right"><b> 内容:</b></td>
    <td><input type="test" name="CCC" size="6" maxlength="4"></td>
...
 </form>
というようになっていれば
WinInetでサーバに接続し、
HINTERNET hHttpFile = HttpOpenRequest(
                            hConnect,
                            "POST",                                                "/.../AAA.asp",
                            HTTP_VERSION,
                      "ホスト名",
                            NULL,
                            INTERNET_FLAG_RELOAD,
                            0) ;
// POST文作成
char buf[256];
_snprintf(buf, sizeof(buf), "BBB=%s&CCC=%s", "名前", "内容");

// 送信
HttpSendRequest(hHttpFile, NULL,0, buf, strlen(buf))

でsubmitできます。
暗黙のうちにPOSTされるパラメータもあるため、どのような文でPOSTすればいいかは多少HTMLの知識が必要になると思います。


きくたけ  2005-09-16 22:20:16  No: 58887

YOU様回答ありがとうございました.
返答が遅くなり申し訳有りません.
早速WinInetを試してみました.
結果,相手先のHTMLタグをテキストベースで
受け取る事は出来ました.
しかし,それをどうやってIEに変換すればよいかで
また停滞してしましました.
同時進行で試していたNavigate2の方で,
実行させる事が出来ました.
どうもありがとうございました.
また有事の際はよろしくお願いいたします.


きくたけ  2005-09-16 22:21:25  No: 58888

解決いたしました.


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加