VC6.0 MFC编程实现读取计算器两级内存演示
//全局变量
HWND gameh;//窗口句柄
DWORD proid; //进程标识
HANDLE oproid; //进程句柄
void CJsq_wgDlg::OnButton1() //按钮1
{
// TODO: Add your control notification handler code here
gameh=::FindWindow(NULL,"计算器"); // 用API函数FindWindow获取窗口句柄
this->m_hwnd = DWORD(gameh) ; // 在IDC_EDIT1上显示窗口句柄
UpdateData(false); // 更新窗口数据
}
void CJsq_wgDlg::OnButton2() //按钮2
{
// TODO: Add your control notification handler code here
::GetWindowThreadProcessId(gameh,&proid); // 用API函数GetWindowThreadProcessId获取目标进程标识
this->m_proid = DWORD(proid); // 在IDC_EDIT2上显示目标进程标识
UpdateData(false); // 更新窗口数据
}
void CJsq_wgDlg::OnButton3()
{
// TODO: Add your control notification handler code here
oproid=::OpenProcess(PROCESS_ALL_ACCESS,false,proid);
this->m_oproid = DWORD(oproid); // 在IDC_EDIT3上显示目标进程句柄
UpdateData(false); // 更新窗口数据
}
void CJsq_wgDlg::OnButton4()
{
// TODO: Add your control notification handler code here
DWORD base=0x9AC1E0;
DWORD base1;
DWORD mystrval;
//读取计算器当前鼠标指针字符
::ReadProcessMemory(oproid,(LPCVOID)base,(LPVOID)&base1,4,0);
base1=base1+0x1DC+0x50;
::ReadProcessMemory(oproid,(LPCVOID)base1,(LPVOID)&mystrval,4,0);
this->m_mstrval = DWORD(mystrval); // 在IDC_EDIT4上显示目标进程句柄
this->m_str = _TEXT(mystrval); // 在IDC_EDIT5上显示鼠标指针字符
UpdateData(false); // 更新窗口数据
}
**** Hidden Message ***** 看了老大的代码,我发现我的代码真是幼儿园啊,虽然东西一样 老大,最后那个,“读内存显示鼠标在计算器中当前指针内容”是什么意思?不明白啊
读的是什么? 我运行了怎么前一个总是0后一个是空的 按钮从上到下的点击,取得进程句柄后,点击最后一个按钮,回计算器窗口,把鼠标指向计算器的任一按钮后,回到主程序再点最后一个按钮就显示刚才鼠标刚才所指向的计算器按钮。 学习学习中 MFC写的啊看看 学习 学习下啊。。。。
页:
[1]