Можно ли по hwnd восстановить object

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Можно ли по hwnd восстановить object

Сообщение Alexanbar » 06.07.2004 (Вт) 22:08

Имеется ввиду следующее. Опознаём другое приложение по его названию в панели задач или иным способом. Далее хотелось бы обратиться к его елементам управления, т.е. Form1.Text1 и пр., где Form1 - это форма, у которого известно hwnd.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 07.07.2004 (Ср) 0:32

К сожалению, именно так, как ты хочешь, нельзя, но есть ф-ция FindWindowEx, где первый и второй параметры - хендлы родителей, а третий и четвертый - класс и текст соответственно. Находи с ее помощью нужные объекты на нужной форме и уже "домогайся" до них :wink:

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 07.07.2004 (Ср) 8:10

А еще есть SendMessage
Объявление:

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

В принципе все ясно. Только вот где взять (в инете) константы сообщений. Они для разных классов окон разные (для листбоксов, текстбоксов одни, для кнопок другие и т.д.). А вообще прикольно, я пробовал с листбоксом - например его прокрутка, пыслом сообщения работает гораздо быстрее, чем прокрутка его штатным скроллбаром (хотя это, наверно, можно где-в реестре отрегулировать, хотя все равно странно ведь скроллбар посылает ему такое же сообщение по логике, а работате медленее 8) ).

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 07.07.2004 (Ср) 12:22

Насчет констант я же писал много раз! :roll:
...
API-Viewer
Больше функций и процедур (ок. 5000), есть константы (ок. 60000), но нет описаний и примеров.
http://www.activevb-archiv.de/downloads ... pv2003.exe
Русский язык:
http://www.activevb-archiv.de/downloads ... ussian.exe
...

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 08.07.2004 (Чт) 1:14

Короче, получается много геморроя.
Что, собственно,было причиной возниконвения темы. Решил одно большое приложение разбить на два. Формы взаимодействовали между собой довольно сильно.
Если разделять приложение, то получается, во-перых, нужно писать класс для их взаимодействия, а во-вторых, для некоторых элементов управления нет свойства HWND (в частности, для кнопки Toolbar-а), а поэтому и управлять им нельзя - разве что создать своё сообщение.
Обидно, однако!

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 08.07.2004 (Чт) 19:50

У тулбара есть hWnd один на всех, по-моему. А без hWnd только 4 lightweight контрола - Label, Image, Shape и Line.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList