|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.04.2008, 10:33 | #1 |
Регистрация: 22.04.2008
Сообщений: 9
|
DateTimePicker и API
Привет всем!
Проблема: Необходимо средствами API передать дату в DateTimePicker чужого окна. h:=FindWindow(nil, 'Form');//чужая форма h1:=FindWindowEx(h,0,'TDateTimePick er',nil);//хэндл таймпикера sendmessage(h1,wm_settext,0,Integer (PChar('18.04.0 8')));//типа шлем свою дату, но, увы, дата не шлется Спасибо. |
22.04.2008, 11:20 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Если хендл правильно нашел и если это действительно делфовый контрол то можно так:
Код:
I'm learning to live...
|
22.04.2008, 11:41 | #3 |
Регистрация: 22.04.2008
Сообщений: 9
|
В делфовом контроле работает, спасибо. У меня, скорее всего,сишный,
поэтому результат пока нулевой |
22.04.2008, 11:57 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А это легко узнать. SpyXX или Winspector поможет узнать класс.
I'm learning to live...
|
22.04.2008, 13:06 | #5 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
По порядку.
1. DateTimePicker не интересует сообщение WM_SETTEXT; 2. Для установки/чтения даты у DateTimePicker'а существуют сообщения DTM_SETSYSTEMTIME и DTM_GETSYSTEMTIME, Они прекрасно работают внутри одного процесса, но при связи с другим процессом с ними следующая проблема: 3. Всё, что относится к Common Controls имеет в основном "свои" сообщения большие, чем WM_USER. Это делает затруднительной передачу данных по указателю в другие процессы, поскольку Windows не маршаллит эти данные автоматически для сообщений, больших WM_USER. Отсюда вытекают минимум два возможных решения - "загнать" данные с помощью хука или записать их в другой процесс напрямую, а уже потом вызывать DTM_SETSYSTEMTIME, указывая в качестве аргумента данные, уже находящиеся в нужном процессе. Разумеется, в обоих случаях нужно иметь права на доступ к процессу и привилегии на выполнение этих операций. 2-1 способ: Код:
|
22.04.2008, 15:21 | #6 |
Регистрация: 22.04.2008
Сообщений: 9
|
Спасибо, B_N.
Разобрался, немного переделав функцию, т.к. ID у меня был, все работает. Действительно, очень интересное решение!!! Спасибо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DateTimePicker и SQL запрос | SlavyanD | БД в Delphi | 5 | 25.11.2011 10:10 |
DateTimePicker в DBGrid | Alex_76 | Помощь студентам | 4 | 20.06.2008 15:21 |
DateTimePicker Delphi | GAGARIN-NEW | Помощь студентам | 7 | 06.12.2007 15:23 |
Вопросы DateTimePicker | Askat | БД в Delphi | 14 | 29.06.2007 18:53 |
DateTimePicker + Label | krem | Компоненты Delphi | 2 | 10.05.2007 16:36 |