2010-02-03 2 views
2

Есть ли способ увидеть, изменилось ли содержимое «окна», на которое ссылается только дескриптор? Например, полученный от pinvoke FindWindow?обнаружение изменения текста окна с помощью pinvoke

+0

WPF? WinForms? imho, вы можете сказать немного больше о том, что вы имеете в виду под «содержанием ... изменено»: 1. происходит ли изменение в размере формы или подсчете местоположения? 2. изменение в счете FormWindowState? 3. Вы имеете в виду, что некоторые настройки какого-либо элемента управления в форме (например, выбранный элемент в ListView) изменились, какой-то текст был изменен в TextBox? 4. Если я нажму кнопку (при условии, что результат нажатия кнопки не изменит внешний вид формы), это «изменение»? Или ... ? – BillW

ответ

1

Если вы хотите получать уведомления о том, что текст изменен, тогда нет. Некоторые окна отправляют уведомления об изменениях в родительские окна, но вы должны быть в процессе перехвата этих сообщений, и не все окна даже отправляют уведомления. (Я полагаю, тот факт, что вы используете FindWindow, что вы не в процессе)

Если вы хотите, чтобы текст и проверить yoursef, вы можете сделать это с PInvoke к GetWindowText или SendMessage(hwnd, WM_GETTEXT, ...); (GetWindowText является просто полезная обертка вокруг SendMessage)

Смежные вопросы