一个验证码图片 如何粘贴到剪切板下呢
一个验证码图片 怎么粘贴到剪切板上呢
验证码html 如下<img src="/code/bin/verify/captcha.php" width="114" height="40" onClick='this.src="/code/bin/verify/captcha.php?n="+Math.random();' alt="验证码">
他是没有名字的 我找到的验证码放到剪贴板上的代码是
其中一段是错误的 我知道 是用验证码的名字获取,可是验证码没有名字怎么获取呢?
if (FAILED(pColl->item(COleVariant( _T("random_img")), COleVariant((long)0), &pdispImgElement))
|| pdispImgElement == NULL)
这句 怎么写呢 怎么获取验证码呢?
------解决方案--------------------
没做过,帮顶
------解决方案--------------------
楼主是想识别图片的验证码?用opencv,具体步骤google
------解决方案--------------------
验证码能这么轻易获取,那验证码就失去意义了。
一般验证码图片是在服务器端合成的图片,只能获得图片,很难获得验证码的文字。
------解决方案--------------------
先下载这个图片,再打开这个图片,转为bmp,复制到剪贴板就完了
------解决方案--------------------
用IE组件来得到图片是个不好的办法,因为如果你知道图片的URL,就可以直接下载
------解决方案--------------------
对你这个流程很感兴趣。背景和重要的文字是分离的吧。是在服务器根据客户点击随机合成还是别的方式?
生成文件没有名字?
验证码html 如下<img src="/code/bin/verify/captcha.php" width="114" height="40" onClick='this.src="/code/bin/verify/captcha.php?n="+Math.random();' alt="验证码">
他是没有名字的 我找到的验证码放到剪贴板上的代码是
- C/C++ code
IHTMLElementCollection *objAllElement=NULL; IHTMLDocument2 *objDocument=NULL; CComPtr <IDispatch> pDisp; objDocument=(IHTMLDocument2 *)m_IE.get_Document(); objDocument->get_all(&objAllElement); 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); IHTMLDocument2 *pDispDoc=NULL; pDispDoc=(IHTMLDocument2 *)m_IE.get_Document(); if (pDispDoc == NULL) goto Cleanup; if (FAILED(pDispDoc->QueryInterface(IID_IHTMLDocument2, (void**) &pDoc))) goto Cleanup; if (FAILED(pDoc->get_all(&pColl))) goto Cleanup; [color=#3366FF] if (FAILED(pColl->item(COleVariant( _T("random_img")), COleVariant((long)0), &pdispImgElement)) || pdispImgElement == NULL) goto Cleanup;[/color] 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 ( IsClipboardFormatAvailable(CF_BITMAP) ) { HWND hwnd; CRect rc; if (OpenClipboard()) { HBITMAP hbm = (HBITMAP)GetClipboardData(CF_BITMAP); m_picture.SetBitmap(hbm); m_picture.Invalidate(); CloseClipboard(); } }
其中一段是错误的 我知道 是用验证码的名字获取,可是验证码没有名字怎么获取呢?
if (FAILED(pColl->item(COleVariant( _T("random_img")), COleVariant((long)0), &pdispImgElement))
|| pdispImgElement == NULL)
这句 怎么写呢 怎么获取验证码呢?
------解决方案--------------------
没做过,帮顶
------解决方案--------------------
楼主是想识别图片的验证码?用opencv,具体步骤google
------解决方案--------------------
验证码能这么轻易获取,那验证码就失去意义了。
一般验证码图片是在服务器端合成的图片,只能获得图片,很难获得验证码的文字。
------解决方案--------------------
先下载这个图片,再打开这个图片,转为bmp,复制到剪贴板就完了
------解决方案--------------------
用IE组件来得到图片是个不好的办法,因为如果你知道图片的URL,就可以直接下载
------解决方案--------------------
对你这个流程很感兴趣。背景和重要的文字是分离的吧。是在服务器根据客户点击随机合成还是别的方式?
生成文件没有名字?