質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2191閲覧

【C++】セレクトボックスの値の設定ができない

Reach

総合スコア733

COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/05/25 14:15

編集2018/05/25 15:14

お世話になっております

C++ で IE上の セレクトボックスの値を 選択したいのですが
上手くいきません

C++

1#include <windows.h> 2#include <tchar.h> 3#include <atlbase.h> 4#include <mshtml.h> 5#include <cstdio> 6#include <stdio.h> 7#include <string.h> 8#include <string> 9#include <iostream> 10#include <atlstr.h> 11#include <wchar.h> 12#include <stdlib.h> 13#include <stdio.h> 14 15#import <mshtml.tlb> 16using namespace std; 17 18#import <shdocvw.dll> 19#import <mshtml.tlb> 20 21#import "libid:EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B" no_namespace named_guids 22 23 24int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 25 PSTR szCmdLine, int iCmdShow) 26{ 27 28 HRESULT hr = ::CoInitialize(NULL); 29 if (FAILED(hr)) { 30 return -1; 31 } 32 33 34 IWebBrowser2* pIE; 35 hr = CoCreateInstance( 36 CLSID_InternetExplorer, 37 NULL, 38 CLSCTX_LOCAL_SERVER, 39 IID_IWebBrowser2, 40 (VOID**)&pIE 41 ); 42 43 44 VARIANT_BOOL pBool = VARIANT_TRUE; 45 hr = pIE->put_Visible(pBool); 46 47 48 pIE->Navigate("http://www.jma.go.jp/jp/yoho/"); 49 50 51 while (pIE->Busy == VARIANT_TRUE || 52 pIE->ReadyState != READYSTATE_COMPLETE) 53 ::Sleep(100); 54 55 56 57 58 MSHTML::IHTMLDocument3Ptr pDoc = pIE->GetDocument(); 59 CComQIPtr<IHTMLElementCollection> elements = pDoc->getElementsByTagName("option"); 60 61 long len; 62 elements->get_length(&len); 63 64 for (long i = 0; i < len; ++i) { 65 CComPtr<IDispatch> pDispath; 66 elements->item(CComVariant(i), CComVariant(0), &pDispath); 67 CComQIPtr<IHTMLElement> pElement = pDispath; 68 CComBSTR inner; 69 pElement->get_innerText(&inner); 70 71 72 pElement->put_innerText(_bstr_t(inner)); 73 74 } 75 76 pDoc.Release(); 77 pIE->Quit(); 78 pIE->Release(); 79 80 ::CoUninitialize(); 81 82 exit(0); 83 84} 85 86```get_innerText で 値が取得できているので 87put_innerText で 選択できると考えたのですが 88思うようにいきません 89 90回答 お願い致します 91 92******************************* 93 開発環境 94******************************* 95 96Visual Studio Community 201797 98MFC と ATL のサポート (X86 と X64) 99Windows 8.1 SDK 100Windows Universal CRT SDK 101標準ライブラリモジュール 102 103をインストールしています 104(その他も?)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hmmm

2018/05/25 14:50

コンパイルができません。また、開発環境などを記載してください。Visual Studioのバージョンなど。
guest

回答1

0

自己解決

以下コードで 自己解決いたしました

C++

1 MSHTML::IHTMLDocument3Ptr pDoc = pIE->GetDocument(); 2 CComQIPtr<IHTMLElementCollection> elements = pDoc->getElementsByTagName("option"); 3 MSHTML::IHTMLElementCollectionPtr elements2 = pDoc->getElementsByTagName("option"); 4 long len; 5 elements->get_length(&len); 6 7 for (long i = 0; i < len; ++i) { 8 CComPtr<IDispatch> pDispath; 9 elements->item(CComVariant(i), CComVariant(0), &pDispath); 10 CComQIPtr<IHTMLElement> pElement = pDispath; 11 CComBSTR inner; 12 pElement->get_innerText(&inner); 13 14 15 MSHTML::IHTMLOptionElementPtr pElement2 = elements2->item(CComVariant(i), CComVariant(0)); 16 17 18 pElement2->put_selected(VARIANT_BOOL(True)); 19 20 }

投稿2018/05/25 22:14

Reach

総合スコア733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問