hWnd как идентификатор окна

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

hWnd как идентификатор окна

Сообщение Space » 26.10.2009 (Пн) 7:02

может ли новое окно получить hWnd ранее существовавшего окна? Т.е. можно ли hWnd считать идентификатором окна в течении сессии Винды?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: hWnd как идентификатор окна

Сообщение Хакер » 26.10.2009 (Пн) 8:16

Некорректно задавать такие вопросы. (Я уже не говорю, что вопрос ни капли не относится в VB6)
---
Есть класс объектов, обладающих хендлами, к которому относится объект-окно. Есть win32k.sys, в котором есть функция HMAllocObject. Именно эта функция выделяет память для таких объектов и придумывает им уникальный хендл.

Тот алгоритм выбора свободного хенда, который там сейчас (то есть в XP), насколько я помню, не гарантирует ничего подобного, то есть никакой уникальности (зато гарантирует четность численного значения хендла, к примеру). Хоть это и маловероятно, MS может в любой момент внести изменения, потому как это внутренние детали реализации.

И полагаться на внутренние детали реализации неправильно, спрашивать же вопросы по ним не указывая конкретной версии продукта --- некорректно, ибо они сегодня одни, а завтра могут стать совсем иными.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: hWnd как идентификатор окна

Сообщение Денис » 26.10.2009 (Пн) 9:06

Проще говоря, если ты уничтожаешь окно, про его хендл можешь забыть.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: hWnd как идентификатор окна

Сообщение Space » 27.10.2009 (Вт) 2:34

ясно. Тогда что можно взять за идентификатор окна? Пока только в голову приходит hWnd+ClassName

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: hWnd как идентификатор окна

Сообщение Viper » 27.10.2009 (Вт) 6:06

Space писал(а):ясно. Тогда что можно взять за идентификатор окна? Пока только в голову приходит hWnd+ClassName
И зачем тебе идентификатор окна? Общаться с окном полагается либо через его описатель (hWnd), либо, методами класса Form. Чем это не устраивает?
Весь мир матрица, а мы в нем потоки байтов!

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: hWnd как идентификатор окна

Сообщение arvitaly » 27.10.2009 (Вт) 15:32

Ха, ну пожалуйста, можешь вести собственный счет создаваемым окнам))) Какая задача то?

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: hWnd как идентификатор окна

Сообщение Space » 27.10.2009 (Вт) 17:27

а я и веду счёт окнам. Задача - различать каждое окно во время сессии Винды. Т.е., если стартует некая прога и показывает окно, и в этот момент окно фиксируется (определяется), то потом, если прога рестартанёт и hwnd новому окну выпадет ненароком тот же, то фиксированное окно должно отличаться чем-то от нового окна проги, а по сути - неким идентификатором.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: hWnd как идентификатор окна

Сообщение Хакер » 27.10.2009 (Вт) 17:30

И зачем такое может понадобиться?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: hWnd как идентификатор окна

Сообщение ANDLL » 27.10.2009 (Вт) 21:46

Ну если тебе надо както определить "то самое" это окно или просто у него такой же hwnd сохраняй у него в пропертях свой собственный уникальный идентификатор, например последовательное число
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: hWnd как идентификатор окна

Сообщение arvitaly » 27.10.2009 (Вт) 23:32

Ну если тебе надо както определить "то самое" это окно или просто у него такой же hwnd сохраняй у него в пропертях свой собственный уникальный идентификатор, например последовательное число


у него в пропертях
- это где?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: hWnd как идентификатор окна

Сообщение iGrok » 28.10.2009 (Ср) 1:15

arvitaly писал(а):
Ну если тебе надо както определить "то самое" это окно или просто у него такой же hwnd сохраняй у него в пропертях свой собственный уникальный идентификатор, например последовательное число


у него в пропертях
- это где?

Видимо, тут:
http://msdn.microsoft.com/en-us/library/ms633561.aspx
label:
cli
jmp label

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: hWnd как идентификатор окна

Сообщение Денис » 28.10.2009 (Ср) 8:48

Мы так и не услышали внятную формулировку задачи. Сдается мне, автор задумал прикрутить пятое колесо к телеге WinAPI. Есть же EnumWindows, которая у меня в недавнем проектике выполняется по таймеру раз в секунду, и выполняется мгновенно, и не грузит проц. А из нее хоть таблицу формируй с окнами, их классами, их хендлами, их заголовками и, соответственно, работай с ними.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 63

    TopList  
cron