你如何知道这地址0x03CBD1E8是可以访问的呢??不会是这里出问题了吧
解决方案 »
- 基于vc的上位机程序与下位机通信接收问题
- 急,VC与USB通信问题,CyAPI.lib文件该怎么添加?
- 打开多个相同程序,findwindow问题
- 关于从文本文件向grid ctrl读入数据的问题
- CSpinButtonCtrl如何实现增量为10?
- 新建的MFC(EXE)单窗口项目,什么代码都没写,编译也出错。各位帮看看
- 关于模态对话框一运行就最大化的问题
- 属性页里有若干个EDIT控件,如何能做到EDIT内内容一旦改变,而应用按钮马上可以起作用
- PowerUsers 权限下 写注册表 问题,帮帮忙
- 请问这样的软件怎么编?来者有分!!
- 新手求教vc5 的vector问题!!!
- 如何使CpropertyPage上的Picture上的图像重绘?
if( !IsWindow(hQQSGWinClass) ){
GetWindowThreadProcessId(hQQSGWinClass,&pid);//得到进程ID
hWnd = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);//打开进程
errCode = GetLastError();//如果OpenProcess失败,可以从errCode找到原因
show(errCode);
ReadProcessMemory(hWnd,(LPCVOID)0x03CBD1E8,(LPVOID)lpbuf,200,&value);
errCode = GetLastError();
show(errCode);
sprintf(buff,"读入了%d个字节",value);
show(buff);
SetDlgItemText(IDC_STATIC1,(LPCTSTR)&value);//这里是给我的Static Text写个标题....}
ReadProcessMemory(hWnd,(LPCVOID)0x03CBD1E8,(LPVOID)lpbuf,200,&value);
TRACE(lpbuf);
所以再仔细看了下知道你的原因了,
你读出来的值应该在lpbuf里面
而不是 value里面
value只是返回你读了多少个字节
SetDlgItemText(IDC_STATIC1,(LPCTSTR)lpbuf);//
HANDLE hProcess;
DWORD lpBuffer[200];if (IsWindow (hWnd)) /* 楼主这一句错的有点不应该 */
{
DWORD dwProcess;
GetWindowThreadProcessId (hWnd, &dwProcess);//得到进程ID
hProcess = OpenProcess (PROCESS_ALL_ACCESS, FALSE, dwProcess);//打开进程
if (hProcess != NULL)
{
MEMORY_BASIC_INFORMATION xMemInfo;
if (VirtualQueryEx (hProcess, (LPCVOID)0x01234567/* 需要读写的地址 */, &xMemInfo, sizeof(xMemInfo)))
{
if (VirtualProtectEx (hProcess, xMemInfo.BaseAddress, xMemInfo.RegionSize, PAGE_READWRITE, &xMemInfo.Protect))
{
SIZE_T xSize;
if (ReadProcessMemory (hProcess, (LPCVOID)0x01234567/* 需要读写的地址 */, lpBuffer, sizeof (lpBuffer), &xSize))
{
...
}
DWORD xProtect;
VirtualProtectEx (hProcess, xMemInfo.BaseAddress, xMemInfo.RegionSize, xMemInfo.Protect, &xProtect);
}
}
}
}