Статус:
Offline
Реєстрація: 22.06.2007
Повідом.: 1661
Реєстрація: 22.06.2007
Повідом.: 1661
- 🔴 08:29 Повітряна тривога в Харків.обл.
- #1
не пашет TBGETBUTTONINFO
Раз уж раздел называется "Программирование" то вопреки традициям задам вопрос по программированию.
Итак, ситуация - есть примерно такой код:
где hwnd - хендл тулбара с кнопками. Хендл правильный, другие сообщения (например TB_BUTTONCOUNT или TB_GETBUTTON) до него доходят.
И вот трабла - под WinXP это всё прекрасно работает, а под Win7 x64 - SendMessage возвращает -1, что свидетельствует об ошибке. Пробовал вместо GETBUTTONINFO посылать GETBUTTONINFOA - то же самое.
В гугле пока решение не нашлось.
Может кто подскажет, что я неправильно делаю, или хоть посоветует в какую сторону копать.
Раз уж раздел называется "Программирование" то вопреки традициям задам вопрос по программированию.
Итак, ситуация - есть примерно такой код:
Код:
TBBUTTONINFO mtbbi;
HWND hwnd;
HANDLE hProc;
DWORD dwProcessID;
void* lpData;
.....
GetWindowThreadProcessId(hwnd, &dwProcessID);
hProc = OpenProcess(PROCESS_ALL_ACCESS, 0, dwProcessID);
lpData = VirtualAllocEx(hProc , 0, sizeof(TBBUTTONINFO), MEM_COMMIT, PAGE_READWRITE);
memset(&mtbbi,0,sizeof(mtbbi));
mtbbi.cbSize=sizeof(TBBUTTONINFO);
mtbbi.dwMask=TBIF_BYINDEX|TBIF_LPARAM;
WriteProcessMemory(hProc,lpData,&mtbbi,sizeof(TBBUTTONINFO),&dwBytesRead);
SendMessage(hwnd, TB_GETBUTTONINFO, 0, (LPARAM)lpData);
ReadProcessMemory(hProc, lpData, &mtbbi, sizeof(TBBUTTONINFO), &dwBytesRead);
где hwnd - хендл тулбара с кнопками. Хендл правильный, другие сообщения (например TB_BUTTONCOUNT или TB_GETBUTTON) до него доходят.
И вот трабла - под WinXP это всё прекрасно работает, а под Win7 x64 - SendMessage возвращает -1, что свидетельствует об ошибке. Пробовал вместо GETBUTTONINFO посылать GETBUTTONINFOA - то же самое.
В гугле пока решение не нашлось.
Может кто подскажет, что я неправильно делаю, или хоть посоветует в какую сторону копать.