Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Определение header и ID


Автор: Коп 16.7.2002, 06:36
Подскажите, пожалуйста, как найти header или ID у программы и поля ввода? Хоть пример приведите. Plz! :)

Автор: Baa 16.7.2002, 14:10
А че такое хедер программы?
И че такое ID программы?
И тут надо определится...
Попробую предположить:
хедер - это наерно дискриптор процесса? (нечто, полученное GetCurrentProcess)
а ид - это наерно его индетификатор? (нечто, полученное GetCurrentProccessID)
(или другими функциями, если не для своего процесса, но дело сейчас не в этом)
Далее, нам наерно надо получить дескриптор окна? (нечто, полученное GetWindow)
Как проверить, поле ли это ввода? с этим сложнее, потому как полей ввода разных много...Стандартные простые - это EDIT и TEDIT (эт из тех, с которыми я втречался)
Как определить? GetClassName

Но скоко я не перечитывал вопрос, так и не понял, что же все-таки надо :( изъясни поподробнее.

Автор: Коп 16.7.2002, 15:38
Я хочу заполнить поле посторонней программы и спрашивал на форуме об этом
(http://www.forum.vingrad.ru/cgi-bin/newforum/ikonboard.cgi?s=3d). Temnozor ответил, что надо Header или ID определить, но не сказал как. Вот я второй раз спрашиваю  ???

Автор: keisik 16.7.2002, 16:06
Насколько я понимаю, человек хочет засандалить пару ласковых в EditBox чужого окна :)
Принцип примерно такой:
1. Находишь само окно программы (например через FindWindow)
2. На этом окне находишь нужное дочернее окно, тот самый Edit (тут потруднее будет, можно как сказали выше через GetWindow() и GetClassName, но если например их едитов несколько, то нужно как-то выбирать нужный. Можно попробовать по расположению на окне, только гиморно)
3. Юзаешь SetWindowText().
Вроде так.

Автор: Коп 17.7.2002, 12:47
Ладно, приведу пример: открываю документ MS Word с паролем, как обычно выскакивает мини-окно для ввода пароля, и именно сюда мне и надо ввести некую комбинацию символов (из моей программы естественно). FindText находит только header окна Word'a, но не может найти парольное окно. Пробовал найти его как дочернее окно методом GetWindow (<header окна Word'a>, GW_CHILD) - не получается. Вот какая проблема.
PS Еще забыл спросить, как кнопку ОК на том же окне нажимать. Тоже header находить, а потом что?
PS Огромное спасибо, что отозвались! :colgate

Автор: Temnozor 17.7.2002, 14:37
Да я просто в разъездах был. Токо-токо до своего компа добрался...
Ты не смог найти это окно, т.к. оно не является дочерним Word'овскому.
Чтоб посмотреть на иерархию окон в системе на текущий момент запусти утилиту Spy (она входит в состав Visual C++).
Так что ищи функцией FindWindow, в которой как параметр lpWindowName укажи "Password" (это заголовок у окна, которое ты ищешь). Ну а дальше ты знаешь...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)