哪位大侠知道怎么用软件获取验证码????

时间:2023-01-10 20:16:39
用什么方法可以获得网页上面的验证码并且显示出来提供人们输入?

7 个解决方案

#1


通过HTTP 得到网页的源文件,然后分析,不过如果验证吗是图片,那就需要图象识别,还是有很多学问的

#2


只是想用软件 登陆QQ,但是需要验证码,

现在账号密码研究出来了,就差验证码了,只需要让软件调用出验证码,人去输入点击提交登陆。  这个验证码怎么让软件调出来

#3


验证码是图片啊,必须用到图像识别技术
不知道,验证码包含哪写内容(中文?字母?数字?)

#4


英文+数字

怎么个图片识别技术?

#5


我只是需要图片显示出来,这涉及什么图片识别啊???迷糊了

#6


如果你经有了那张图片,知道了文件名,你直接显示出来不就可以吗。

#7



BOOL LoadBmpImage( LPCTSTR sbmpfile, CBitmap& bitmap)
{
CFile file;
if( !file.Open( sbmpfile, CFile::modeRead) )
return FALSE;

BITMAPFILEHEADER bmfheader;
if (file.Read((LPSTR)&bmfheader, sizeof(bmfheader)) != sizeof(bmfheader))
return FALSE;
DWORD npackeddiblen=file.GetLength() -sizeof(BITMAPFILEHEADER);
HGLOBAL hdib=::GlobalAlloc(GMEM_FIXED, npackeddiblen); 
if (hdib== 0) return FALSE;
if (file.ReadHuge ((LPSTR)hdib, npackeddiblen) !=npackeddiblen ) 

::GlobalFree(hdib); 
return FALSE; 

BITMAPINFOHEADER &bmiheader=*(LPBITMAPINFOHEADER) hdib ;
BITMAPINFO &bminfo=*(LPBITMAPINFO)hdib ; // if bmiheader.biclrused is zero we have to infer the number 
int ncolors=bmiheader.biClrUsed ? bmiheader.biClrUsed : 1 << bmiheader.biBitCount; 
LPVOID  lpdibbits; 
if( bminfo.bmiHeader.biBitCount> 8 )
lpdibbits = (LPVOID)((LPDWORD)(bminfo.bmiColors + bminfo.bmiHeader.biClrUsed) + 
((bminfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
else
lpdibbits = (LPVOID)(bminfo.bmiColors + ncolors);


        CClientDC dc(NULL);

HBITMAP hbmp = CreateDIBitmap( dc.m_hDC, // handle to device context 
&bmiheader, // pointer to bitmap size and format data 
CBM_INIT, // initialization flag 
lpdibbits, // pointer to initialization data 
&bminfo, // pointer to bitmap color-format data 
DIB_RGB_COLORS); // color-data usage 
DWORD dwRet=GetLastError();
bitmap.Attach( hbmp );
if(!bitmap.m_hObject)
{
return FALSE;
}

if( poldpalette )
dc.SelectPalette( poldpalette, FALSE );

::GlobalFree(hdib);
return TRUE;
}

#1


通过HTTP 得到网页的源文件,然后分析,不过如果验证吗是图片,那就需要图象识别,还是有很多学问的

#2


只是想用软件 登陆QQ,但是需要验证码,

现在账号密码研究出来了,就差验证码了,只需要让软件调用出验证码,人去输入点击提交登陆。  这个验证码怎么让软件调出来

#3


验证码是图片啊,必须用到图像识别技术
不知道,验证码包含哪写内容(中文?字母?数字?)

#4


英文+数字

怎么个图片识别技术?

#5


我只是需要图片显示出来,这涉及什么图片识别啊???迷糊了

#6


如果你经有了那张图片,知道了文件名,你直接显示出来不就可以吗。

#7



BOOL LoadBmpImage( LPCTSTR sbmpfile, CBitmap& bitmap)
{
CFile file;
if( !file.Open( sbmpfile, CFile::modeRead) )
return FALSE;

BITMAPFILEHEADER bmfheader;
if (file.Read((LPSTR)&bmfheader, sizeof(bmfheader)) != sizeof(bmfheader))
return FALSE;
DWORD npackeddiblen=file.GetLength() -sizeof(BITMAPFILEHEADER);
HGLOBAL hdib=::GlobalAlloc(GMEM_FIXED, npackeddiblen); 
if (hdib== 0) return FALSE;
if (file.ReadHuge ((LPSTR)hdib, npackeddiblen) !=npackeddiblen ) 

::GlobalFree(hdib); 
return FALSE; 

BITMAPINFOHEADER &bmiheader=*(LPBITMAPINFOHEADER) hdib ;
BITMAPINFO &bminfo=*(LPBITMAPINFO)hdib ; // if bmiheader.biclrused is zero we have to infer the number 
int ncolors=bmiheader.biClrUsed ? bmiheader.biClrUsed : 1 << bmiheader.biBitCount; 
LPVOID  lpdibbits; 
if( bminfo.bmiHeader.biBitCount> 8 )
lpdibbits = (LPVOID)((LPDWORD)(bminfo.bmiColors + bminfo.bmiHeader.biClrUsed) + 
((bminfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
else
lpdibbits = (LPVOID)(bminfo.bmiColors + ncolors);


        CClientDC dc(NULL);

HBITMAP hbmp = CreateDIBitmap( dc.m_hDC, // handle to device context 
&bmiheader, // pointer to bitmap size and format data 
CBM_INIT, // initialization flag 
lpdibbits, // pointer to initialization data 
&bminfo, // pointer to bitmap color-format data 
DIB_RGB_COLORS); // color-data usage 
DWORD dwRet=GetLastError();
bitmap.Attach( hbmp );
if(!bitmap.m_hObject)
{
return FALSE;
}

if( poldpalette )
dc.SelectPalette( poldpalette, FALSE );

::GlobalFree(hdib);
return TRUE;
}