Скрыть текст в окне чужой проги
Ситуация: есть программа. В неё есть несколько EditBox'ов. Мне нужно из моей программы скрыть текст в этих EditBox'ах. Есть ли какая-нибудь возможность такое сделать ??? Или жду предложений альтернативных, по поводу решения проблемы.
HWND handle=FindWindow(NULL,"Заголовок окна проги");
HWND edit =FindWindowEx(handle,NULL,NULL,"Заголовок Edit`а"; //вроде так :???:
char text[100];
GetWindowText(edit,text,sizeof(text)); //В этой переменной будет текст и едита;
SetWindowText (edit,""); //Установим текст в ноль :)
З.Ы: Заголовки едитов лучше смотреть через InqSoft Sign 0f Misery (в версии со встроенным сканером окон)
З.З.Ы: В тексте возможны ошибки, просьба не бить P(
1. HWND edit =FindWindowEx(handle,NULL,NULL,"Заголовок Edit`а") вряд ли поможет, потому что "Заголовок Edit`а" — это как раз то, что в edit вбили. Вряд ли это известно заранее. Пожалуй, тут надо перечислять всех детей диалога, проверяя для каждого control ID с помощью GetDlgCtrlID.
2. SetWindowText(edit, "") тоже может не прокатить. Наверняка программа где-то держит этот текст и восстановит его при следующей перерисовке.
Так что тут только одно, а именно самое первое из того, что предложил Devicetator: ShowWindow(hwndEdit, SW_HIDE), и тогда никто уже никогда не увидит не только текст, но и сам edit.
Бить вас, mail0 никто не будет, но не всё так просто.
1. Пожалуй, тут надо перечислять всех детей диалога, проверяя для каждого control ID с помощью GetDlgCtrlID
Я могу и ошибится, но GetDlgCtrlID работает только с диалогами. А если это обычное окно?
Это врятли, т.к если бы она хранила где-то текст, то не юзала бы edit'ы
Только так
Я могу и ошибится, но GetDlgCtrlID работает только с диалогами. А если это обычное окно?
...
Это врятли, т.к если бы она хранила где-то текст, то не юзала бы edit'ы
...
GetDlgCtrlID даст идентификатор любого ребёнка любого окна.
Ну, а насчёт второго: а что юзала бы для редактирования этого текста?
Обычно с edit'ом ассоциируют переменную и в ней хранят его последнее содержимое. В MFC это делается стандартно (привязкой переменной типа CString, int или другого), и без MFC обычно тоже делается какими-нибудь доморощенными средствами. Так что очень даже может и не прокатить...