import com.jniwrapper.win32.automation.IDispatch; import com.jniwrapper.win32.automation.OleMessageLoop; import com.jniwrapper.win32.automation.types.BStr; import com.jniwrapper.win32.ie.Browser; import com.jniwrapper.win32.mshtml.IHTMLDocument2; import com.jniwrapper.win32.mshtml.IHTMLSelectionObject; import com.jniwrapper.win32.mshtml.IHTMLTxtRange; import com.jniwrapper.win32.mshtml.impl.IHTMLDocument2Impl; import com.jniwrapper.win32.mshtml.impl.IHTMLTxtRangeImpl; import com.jniwrapper.win32.shdocvw.IWebBrowser2; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * This example demonstrates how to get selected text on loaded web page. */ public class GetSelectedTextSample { public static void main(String[] args) { final Browser browser = new Browser(); JButton printTextButton = new JButton("Print selected text"); printTextButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { OleMessageLoop oleMessageLoop = browser.getOleMessageLoop(); oleMessageLoop.doInvokeLater(new Runnable() { public void run() { IWebBrowser2 webBrowser2 = (IWebBrowser2) browser.getBrowserPeer(); IDispatch document = webBrowser2.getDocument(); IHTMLDocument2 document2 = new IHTMLDocument2Impl(document); IHTMLSelectionObject selection = document2.getSelection(); IDispatch range = selection.createRange(); IHTMLTxtRange textRange = new IHTMLTxtRangeImpl(range); BStr text = textRange.getText(); System.out.println("text = " + text.getValue()); document2.setAutoDelete(false); document2.release(); textRange.setAutoDelete(false); textRange.release(); } }); } }); JFrame frame = new JFrame(); frame.add(printTextButton, BorderLayout.SOUTH); frame.add(browser, BorderLayout.CENTER); frame.setSize(800, 600); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.navigate("http://www.teamdev.com"); } } |
Examples >