|
发表于 2018-5-17 00:20:51
|
显示全部楼层
湖南省湘西土家族苗族自治州
SendMessage(hWnd, TB_GETBUTTON, i, (LPARAM)buf);
代码看起来是cha询其他进程窗口的工具栏按钮信息
因此 (LPARAM)buf 是目标进程的内存地址 内存字节大小 与 TBBUTTON 结构相同
你可能有其他代码没有一起发出来
首先步骤如下:
1. 在目标窗口进程分配内存 大小为 TBBUTTON 结构大小 buf = VirtualAllocEx(...)
2. 调用 SendMessage(hWnd, TB_GETBUTTON, i, (LPARAM)buf); 执行cha询 工具栏索引序号为 i 的按钮信息 调用成功后将存储在 buf内存
3. 由于buf是目标进程的内存 如果需要访问buf信息还需要将buf内存数据通过 ReadProcessMemory 读取到操作进程
::ReadProcessMemory(
进程句柄,
buf[在目标分配的TBBUTTON结构大小的内存首地址],
&btn[操作进程的TBBUTTON结构地址],
sizeof(TBBUTTON)[TBBUTTON结构大小], NULL);
那个啥 由于不了解楼主目前的水平 因此说的可能有点啰嗦
|
|