Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как влезть в ComboBox чужого приложения. Добавлено: 24.10.06 23:55  

Автор вопроса:  747212
Доброго времени суток!

Вопрос в чем:
Есть на работе программа для ввода информации о клиенте с крайне неудобным интерфейсом. Я сделал на VB свою программу, в которой грубо говоря вписываешь фамилию, имя и т.п. информацию клиента, а после нажатия определенной кнопки - эти данные вставляются в форму чужой программы. Так вот - в обычные поля типа TEdit (чужая программа на Delphi) я без проблемм вставляю информацию (нашел HWND и дальше SendMessage), а есть там несколько полей типа ComboBox - с фиксированными значениями. Например есть список "Регион" - там варианты "Город" и "Село". Возможность ввода своего варианта клавиатурой отсутствует. Но! Я не могу поставить значение село путем посылки сообщения (SendMessage) - стиль там стоит не тот (сообщение ничего не меняет). И вот встал вопрос - как туда пробиться вообще в этот ComboBox и как поменять данные?

Спасибо всем откликнувшимся!

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 25.10.06 01:22
рыть дальше SendMessage...

Ответить

Номер ответа: 2
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #2 Добавлено: 25.10.06 08:15
>>Hacker
Спасибо, конечно, но нельзя ли поконкретнее...
Интуитивно я и сам догадался, что это через SendMessage, но какими сообщениями это реализовывать - без понятния.

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 25.10.06 11:03
Сообщениями CB_SELECTSTRING или CB_SETCURSEL. Пока не начнёшь читать документацию, ничего не сделаешь.

Ответить

Номер ответа: 4
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #4 Добавлено: 26.10.06 22:28
Спасибо!
SendMessage(HWND, &H14E, -1, 0) - очень помогло!

Извиняюсь за наглость, но у меня в "чужой программе" есть еще и элемент управления типа TStringGrid с четырьмя колонками - и вот мне туда нужно КАК-ТО записать данные. Никак не могу разобраться как.

Большое спасибо, если поможете!

Ответить

Номер ответа: 5
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #5 Добавлено: 27.10.06 22:00
- Неужто никто из профи не поможет молодому программисту?!

Ответить

Номер ответа: 6
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #6 Добавлено: 28.10.06 08:22
Теоретическое решение проблемы:

Смотреть при помощи например Spy++ что за сообщения отсылаются этому контролу при записи в него данных, ну а затем слать их самому через SendMessage

Ответить

Номер ответа: 7
Автор ответа:
 Eugeny



Вопросов: 0
Ответов: 26
 Профиль | | #7 Добавлено: 09.11.06 21:08
Combobox состоит из трех окон Edit, List, и собственно Combo.
Для издевательств над всеми ими получим хендлы
Dim cbinf As COMBOBOXINFO
   
cbinf.cbSize = Len(cbinf)
Call GetComboBoxInfo(Combo1.hwnd, cbinf)
combik_hwnd = cbinf.hwndCombo
spisok_hwnd = cbinf.hwndList
textik_hwnd = cbinf.hwndItem
 ну а дальше по желанию, сабклассинг, и т.д.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам