91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-05-16
  • 語言: C/C++
  • 標簽: 讀取源碼??

資源簡介

讀取SysListView32用的c++源碼

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“Reader_SysListView32.h“
#include?“DrawLib.h“

Reader_SysListView32::Reader_SysListView32(void)
{
}

Reader_SysListView32::~Reader_SysListView32(void)
{
}

void?Reader_SysListView32::Reset(void)
{
ClearData();
ClearHeader();
}

void?Reader_SysListView32::ClearData(void)
{
row.clear();
}

void?Reader_SysListView32::ClearHeader(void)
{
header.clear();
}

BOOL?Reader_SysListView32::Read(HWND?hwnd)
{
Reset();

int?cols=GetCols(hwnd);
if(!cols)return?0;
int?rows=GetRows(hwnd);

DWORD?pid=GetWindowPid(hwnd);
if(!pid)return?0;
HANDLE?hp=ProcessOpen(pid);
if(!hp)return?0;
DWORD?nMemSize=64*1024;
DWORD?rmAddr=ProcessAlloc(hpnMemSize);
if(!rmAddr)return?0;
cols=ReadHeader(hphwndrmAddrnMemSize);
if(rows)
{
ReadTable(hphwndrmAddrnMemSizecols);
}
ProcessFree(hprmAddrnMemSize);
ProcessClose(hp);
return?1;
}

int?Reader_SysListView32::ReadHeader(HANDLE?hProcessHWND?hwnd?DWORD?nRemoteBufferAddress?DWORD?nBufferSize)
{
//CString?sClass=GetWindowClass(hwnd); //有些窗口類不是“SysListView32“也能被讀取,如exescope里的表格,可能是它的派生類
int?nCols=GetCols(hwnd);
if(!nCols)return?0;

HWND?hHeader=GetHeaderWnd(hwnd);

DWORD?nbaseSize=128; //比sizeof(HDITEM)大一點
DWORD?nTextAddr=nRemoteBufferAddress+nbaseSize;
DWORD?nBuffLen=(nBufferSize-nbaseSize)/sizeof(TCHAR);
if(nBufferSize<=nbaseSize+2)return?0;

TCHAR?*pText=(TCHAR*)new?char[nBufferSize];
HDITEM?hi={0};
for(int?i=0;i {
hi.cchTextMax=nBuffLen;
hi.pszText=(TCHAR*)nTextAddr;
hi.mask=HDI_TEXT;
if(!ProcessWrite(hProcessnRemoteBufferAddressnbaseSize&hi))break;
if(::SendMessage(hHeaderHDM_GETITEMinRemoteBufferAddress))
{
ProcessReadText(hProcessnTextAddrpTextnBufferSize/sizeof(TCHAR));
header.push_back(pText);
}
}
delete?pText;
return?nCols;
}

int?Reader_SysListView32::ReadTable(HANDLE?hProcessHWND?hwnd?DWORD?nRemoteBufferAddress?DWORD?nBufferSizeint?nCols)
{
//LVM_GETCOLUMN也能檢測列數量,可以從0列開始一個個測試,但是如果不是報表風格則可能錯誤。一旦是報表風格則一定會有頭控件所以依然使用頭控件返回的列數nCols

int?nRows=GetRows(hwnd);
if(!nRows)return?0;

DWORD?nbaseSize=128; //比sizeof(LVITEM)大一點
DWORD?nTextAddr=nRemoteBufferAddress+nbaseSize;
DWORD?nBuffLen=(nBufferSize-nbaseSize)/sizeof(TCHAR);
if(nBufferSize<=nbaseSize+2)return?0;

TCHAR?*pText=(TCHAR*)new?char[nBufferSize];
LVITEM?li={0};
Row?BlankRow;
for(int?r=0;r {
Reader_SysListView32::row.push_back(BlankRow);
Row&row=Reader_SysListView32::row[Reader_SysListView32::row.size()-1];
for(int?c=0;c {
li.cchTextMax=nBuffLen;
li.pszText=(LPTSTR)nTextAddr;
li.mask=LVIF_TEXT;
li.iItem=r;
li.iSubItem=c;
if(!ProcessWrite(hProcessnRemoteBufferAddressnbaseSize&li))break;
if(::SendMessage(hwndLVM_GETITEM0nRemoteBufferAddress))
{
ProcessReadText(hProcessnTextAddrpTextnBufferSize/sizeof(TCHAR));
row.push_back(pText);
}
}
}
delete?pText;
retu

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4798??2012-05-16?16:22??Reader_SysListView32.cpp

?????文件????????649??2012-05-15?15:11??Reader_SysListView32.h

?????文件???????1153??2012-05-16?16:19??ProcessOperator.h

?????文件???????4040??2012-05-16?16:15??ProcessOperator.hpp

?????文件????????118??2013-08-03?10:40??說明.txt

-----------?---------??----------?-----??----

????????????????10758????????????????????5


評論

共有 條評論