HWND wnd=FindWindow("Shell_TrayWnd",0);
wnd=FindWindowEx(wnd,0,"TrayNotifyWnd",0);
wnd=FindWindowEx(wnd,0,"ToolbarWindow32",0);
DWORD pid;
GetWindowThreadProcessId(wnd,&pid);
HANDLE prc=OpenProcess(PROCESS_ALL_ACCESS,0,pid);
TBBUTTON *buf=(TBBUTTON *)VirtualAllocEx(prc,0,sizeof(TBBUTTON),MEM_COMMIT,PAGE_READWRITE);
if(!buf)return;
for(int n=0;n<128;n++)
{
if(SendMessage(wnd,TB_GETBUTTON,n,(DWORD)buf))
{
char ltxt[1024];ZeroMemory(ltxt,1024);
TBBUTTON btn;
ReadProcessMemory(prc,buf,&btn,sizeof(btn),0);
char *txt=(char *)VirtualAllocEx(prc,0,1024,MEM_COMMIT,PAGE_READWRITE);
if(SendMessage(wnd,TB_GETBUTTONTEXT,btn.idCommand,(DWORD)txt)!=-1)
{
ReadProcessMemory(prc,txt,ltxt,1024,0);
MessageBox(0,ltxt,"xxx",0);
}
VirtualFreeEx(prc,txt,0,MEM_RELEASE);
}
}
VirtualFreeEx(prc,buf,0,MEM_RELEASE);
CloseHandle(prc);
|