• 締切済み

C/C++でIEの選択範囲を取得する方法

C/C++で、IE上で範囲選択している場合に、別のアプリケーションからその選択範囲を取得する方法をおしえてください。 今は、IEにCTRL+Cを送って、クリップボード経由で取得する方法を検討しています。 以下のようなコードで、範囲選択をしているウィンドウのタイトルは取れているのですが、クリップボードへのコピーができていません、ハンドルが違うような気がするのですが... どうすればよろしいのでしょうか?? char buf[1000]; HWND hWndFore; /* フォアグラウンドウィンドウの取得 */ hWndFore = GetForegroundWindow(); /* ウィンドウタイトルの表示 */ GetWindowText(hWndFore, buf, 1000); //MessageBox(NULL, buf, "DoGetForegroundWindow", MB_OK); keybd_event(VK_CONTROL, 0, 0, 0); keybd_event('C', 0, 0, 0); keybd_event('C', 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); よろしくお願いいたします。

みんなの回答

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.2

単純にテキストをコピーするというのは難しいと思います。普通はIEコンポーネントへアクセスして取得することになります。そのためある程度COMの知識が必要になります。 IEFrameのHWNDからIEコンポーネント(IWebBrowser2)を取得してIHTMLSelectElementやIHTMLTxtRangeを使ってテキストを得ることになるかと思います。

  • mcq
  • ベストアンサー率48% (45/93)
回答No.1

この掲示板のやり取りが役に立つと思います。

参考URL:
http://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200312_03120092.html

関連するQ&A