Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2008, 18:05   #1
user_jasser
я не ~
Пользователь
 
Аватар для user_jasser
 
Регистрация: 19.09.2008
Сообщений: 58
По умолчанию работа с комп. через WinApi

Вот я нахожу элименты окна через функцию FindWindowEx. С полученым ID можно работать как с полноценным классом(реагировать на события, создавать дополнительные методы...) или все через WinApi нужно? Буду очень благодарен за самый скромный пример или сылку где искать нужно.

Последний раз редактировалось user_jasser; 13.11.2008 в 19:47.
user_jasser вне форума Ответить с цитированием
Старый 14.11.2008, 18:15   #2
Legat
Пользователь
 
Регистрация: 05.10.2007
Сообщений: 34
По умолчанию

Конечно, с полученным Handle можно работать через Winapi.
Для поиска компоненты как объекта лучше использовать функции
FindChildControl или FindComponent.
Насчет создавания дополнительных методов у классов или объектов в рантайм мне ничего не известно (по-моему, это не возможно обычными средствами Delphi....)
Legat вне форума Ответить с цитированием
Старый 14.11.2008, 18:51   #3
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2user_jasser ну не совсем как с обычным классом. например на чужой edit обработчик ты никакой не повешаешь (без хука) + некоторые винапи функции требуют, чтоб твой контрол принадлежал твоему приложению
vvviperrr вне форума Ответить с цитированием
Старый 15.11.2008, 17:26   #4
user_jasser
я не ~
Пользователь
 
Аватар для user_jasser
 
Регистрация: 19.09.2008
Сообщений: 58
По умолчанию

тогда тяжеловато мне будет. Вот как отследить положение каретки в чужем Edit ?
user_jasser вне форума Ответить с цитированием
Старый 15.11.2008, 18:58   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Вот как отследить положение каретки в чужем Edit ?
Зачем? Чего добиваешся?
Цитата:
Для поиска компоненты как объекта лучше использовать функции
FindChildControl или FindComponent.
Не согласен, во-первых этот "компонент" должен по любому быть написан в Делфи, во вторых ты должен знать его класс.
Не очень удобные эти функи.

И вообще если автор раскроет задачу поточнее то окажется что ее можно решить несколькими способами.
I'm learning to live...

Последний раз редактировалось Stilet; 15.11.2008 в 19:00.
Stilet вне форума Ответить с цитированием
Старый 15.11.2008, 19:15   #6
user_jasser
я не ~
Пользователь
 
Аватар для user_jasser
 
Регистрация: 19.09.2008
Сообщений: 58
По умолчанию

Задача :
Есть окно(чужей)проги в нем есть класс Edit, вот с ним мне надо поработать. Нужно отслеживать написания символа ('.') если введен то добавлять рядом с кареткой TListBox моей проги.

Последний раз редактировалось user_jasser; 15.11.2008 в 19:17.
user_jasser вне форума Ответить с цитированием
Старый 15.11.2008, 19:34   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну если нашел хендл эдита то GetWindowText даст тебе его текст. Вот например в таймере получай текст эдита и проверяй является ли последним символом точка. )
Усек?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2008, 20:14   #8
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2Stilet Тогда у таймера должен быть очень маленький интервал, ибо эту точку могут ввести быстро, во время простоя таймера.
тс. имхо проще созать хук WH_KEYBOARD, в keyboardProc проверять, не точку ли ввели. если точку, то проверить активно ли чужое окно и на каком элементе стоит фокус. если на нашем эдите - то ок, добавляем инфу в свою прогу
vvviperrr вне форума Ответить с цитированием
Старый 15.11.2008, 20:48   #9
user_jasser
я не ~
Пользователь
 
Аватар для user_jasser
 
Регистрация: 19.09.2008
Сообщений: 58
По умолчанию

Stilet
текст достаточно больней будет это как проверить что ввели именно точку? Сравнивая весь текст?
vvviperrr
да вобщем я нашел инфу как через меседж(WM_CHAR)зделать. вот только незнаю как каретку найти и фокус на класс? Да и пример цуко на С++ хотя (принцеп вроде похож).
user_jasser вне форума Ответить с цитированием
Старый 15.11.2008, 21:06   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
vvviperrr
Ну судя по вопросам автора, я просто в тряпочку молчу о хуках
Цитата:
user_jasser
Какой бы текст длины не был ты можеш его получить в String и посмотреть есть ли там точка.

Есть еще один вариат, я его когда-то применил успешно, но это весьмя экстремально:
Значит узнаеш координаты того Эдита, делаем его навидимым, а на его место ставим свой эдит, Допустим ты на форме растянул один эдит и он у тебя всю форму закрывает, тогда координаты формы должны совпадать с координатами того эдита, который то хочеш хакнуть.
Или просто задай Parent для своего Эдита окно, где был тот эдит.
А при вводе в свой эдит переноси введенное в чужой.
Это мутный ход но иногда он действует путево
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение свойств кнопки через WinAPI Никки Win Api 12 20.09.2009 15:01
WinApi работа с памятью, помогите! casper123 Помощь студентам 5 15.09.2008 08:13
Работа с Socket-ом c помощю WinAPI 69 region Помощь студентам 13 11.04.2008 17:22
Как программно назначить привилегию или писать в реестр через WinApi ? UnD)eaD)Snake Win Api 16 27.09.2007 20:20