如何以编程方式将一个 IMG 元素复制到剪贴板
来源:互联网 发布:mac迅雷扩展插件 编辑:程序博客网 时间:2024/06/05 00:37
将 Web 页上的图像复制到剪贴板上最好的方法是使用 execCommandcontrolRange 对象的方法。若要在页本身 (授予要复制的图像 ID) 上的脚本中执行此从下面的代码阐释:
function copyImage(sImgID) { var ctrlRange = document.body.createControlRange(); ctrlRange.add(document.all(sImgID)); ctrlRange.execCommand("Copy"); }
在 Microsoft Visual c + +,此方法调用转换为 IHTMLControlRange::execCommand。下面的代码演示如何在 Visual c + + 的 IDispatch 指针给包含图像和 VARIANT 结构中 (与 VT_BSTR 类型) 包装的 IMG 元素的 ID 在文档中实现相同的技术:
STDMETHODIMP CMyBrowser::CopyImage(LPDISPATCH pDispDoc, VARIANT vImageID) { HRESULT hr = E_FAIL; IHTMLDocument2* pDoc = NULL; IHTMLElement* pelmBody = NULL; IHTMLElement2* pelmBodyTwo = NULL; IDispatch* pdispImgElement = NULL; IDispatch* pdispCtrlRange = NULL; IHTMLElementCollection* pColl = NULL; IHTMLControlElement* pCtrlElement = NULL; IHTMLControlRange* pCtrlRange = NULL; BSTR bstrCommand = SysAllocString(L"Copy"); VARIANT_BOOL vbReturn; VARIANT vEmpty; VariantInit(&vEmpty); if (pDispDoc == NULL) goto Cleanup; if (FAILED(pDispDoc->QueryInterface(IID_IHTMLDocument2, (void**) &pDoc))) goto Cleanup; if (FAILED(pDoc->get_all(&pColl))) goto Cleanup; if (FAILED(pColl->item(vImageID, vEmpty, &pdispImgElement)) || pdispImgElement == NULL) goto Cleanup; if (FAILED(pDoc->get_body(&pelmBody)) || pelmBody == NULL) goto Cleanup; if (FAILED(pelmBody->QueryInterface(IID_IHTMLElement2, (void**) &pelmBodyTwo)) || pelmBodyTwo == NULL) goto Cleanup; if (FAILED(pelmBodyTwo->createControlRange(&pdispCtrlRange)) || pdispCtrlRange == NULL) goto Cleanup; if (FAILED(pdispCtrlRange->QueryInterface(IID_IHTMLControlRange, (void**) &pCtrlRange)) || pCtrlRange == NULL) goto Cleanup; if (FAILED(pdispImgElement->QueryInterface(IID_IHTMLControlElement, (void**) &pCtrlElement)) || pCtrlElement == NULL) goto Cleanup; hr = pCtrlRange->add(pCtrlElement); if (SUCCEEDED(hr)) hr = pCtrlRange->execCommand(bstrCommand, VARIANT_FALSE, vEmpty, &vbReturn); pCtrlElement->Release(); hr = S_OK; Cleanup: SysFreeString(bstrCommand); if (pCtrlRange) pCtrlRange->Release(); if (pdispCtrlRange) pdispCtrlRange->Release(); if (pelmBodyTwo) pelmBodyTwo->Release(); if (pelmBody) pelmBody->Release(); if (pdispImgElement) pdispImgElement->Release(); if (pColl) pColl->Release(); if (pDispDoc) pDispDoc->Release(); return hr; }
- 如何以编程方式将一个 IMG 元素复制到剪贴板
- 如何以编程方式将一个 IMG 元素复制到剪贴板
- 如何复制文件到剪贴板
- Excel中如何以文字而不是图片的方式将内容复制到QQ中
- js将地址复制到剪贴板
- 用js将内容复制到剪贴板
- android将文字复制到剪贴板
- MFC:使用剪贴板,怎么将内容复制到剪贴板
- Android中如何复制内容到剪贴板
- 写一个C++,MFC在UNICODE下将HTML源码以可视化方式复制到剪切板的函数
- 点击复制按钮将指定id内容复制到剪贴板
- 如何将文件拷贝到剪贴板
- 用VB实现将图片文件复制到剪贴板
- 将文本中的内容复制到剪贴板中
- 用vbscript实现将脚本的输出复制到剪贴板
- Flex 将一些信息复制到系统剪贴板上
- js 将指定的内容复制到剪贴板中
- 将vim中内容复制到系统剪贴板
- SQl Server 动态SQL给变量赋值 和OBJECTPROPERTY函数使用及判断表 存储过程 视图等是否存在
- 第一篇CSDN的博客
- 没有理由放弃——曾经比你惨,但最终结局比完美的故事
- Fedora10安装vmware-tools后系统无法正常启动的解决方法
- 深入浅出剖析静态方法和实例方法的区别
- 如何以编程方式将一个 IMG 元素复制到剪贴板
- C语言中 数组与指针的不同 。 char[] 与 char*
- ZedGraph中的自定义X刻度
- 解决“您试图从目录中执行CGI、ISAPI 或其他可执行程序...”的问题
- CStatic字体设置
- session.getAttribute("")的返回
- 一个村,先记下有间研究一下
- 元胞自动机与相关理论和方法
- 【VS2008无法启动asp.net development server】的解决