Установка флагов итемов в CheckedListBox чужого приложения

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

Установка флагов итемов в CheckedListBox чужого приложения

Сообщение visualman » 19.09.2011 (Пн) 15:32

Приветствую!

Проблема такая:

есть 2 приложения:
1 - инсталлятор продукта конторы
2 - Моё средство автоматизации тестирования

CheckedListBox - ListBox с галками у пунктов.

Требуется в диалоге инсталлятора в объекте CheckedListBox поставить флаги у некоторых элементов этого списка.
У списка знаю только Handle.

Другие действия со списком совершаю без проблем. Например:
Код: Выделить всё
RetVal = SendMessage (CheckedListBox.hWnd, LB_GETCOUNT, 0, 0)
- получает колличество элементов списка

Код: Выделить всё
RetVal = SendMessage (CheckedListBox.hWnd, LB_GETTEXT, 1, BuffLen)
- получает текст итема

Код: Выделить всё
RetVal = SendMessage (CheckedListBox.hWnd, LB_SELECTSTRING, -1, ItemText)
- Ищет строку в списке по её начальной части текста

(написано абстрактно)

и т.д.

Мне надо найти такую константу, вместо LB_GETCOUNT, LB_SELECTSTRING и т.д. чтобы у итема устанавливался флаг (галочка). Типа он выбран.

Например Вот так:
Код: Выделить всё
RetVal = SendMessage (CheckedListBox.hWnd, LB_SETITEMCHECK, 2, 1)

(2-индекс итема, 1 - булевский True - установить флаг; 0 - снять флаг)

Сорс http://www.codeproject.com/KB/combobox/Win32SDK_ListboxCombobox.aspx#CheckedListBox_SetCheckState11 надежд не оправдал.
В сорсе APIListBox тоже ни чего полезного не нашёл. Помогите плиз! 3 дня в поисках решения.
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

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

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение Хакер » 19.09.2011 (Пн) 15:41

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

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение visualman » 19.09.2011 (Пн) 15:47

Хакер писал(а):Что за инсталлятор? Хорошие инсталляционные платформы предлают выбор опций с помощью ключей или спец. API. Так что будет документированный путь, а не горе-способ с сообщениями.

InnoSetup. На Delphi написан. Класс списка TNewCheckListBox. 'Производная' от стандартного ListBox.

Способ нужен универсальный, т.к. контор много, и переписывать под каждую - глупо и догло.
После тестирования инсталлятора, нужно тестировать продукт, и тут уже ключи не помогут.

Люди говорят, что надо двигаться в сторону LB_GETITEMDATA, но он всегда False возвращает (типа у пункта флаг не установлен)
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

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

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение Хакер » 19.09.2011 (Пн) 17:32

В чём проблема? Ты не знаешь, какое сообщение надо послать окну, чтобы элемент стал чекнутым (не путать с чёкнутым)?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение ger_kar » 19.09.2011 (Пн) 19:14

А что если банально послать WM_LBUTTONDOWN / WM_LBUTTONUP . Интересно, что сообщение WM_LBUTTONDBLCLK есть, а сообщения для одинарного клика я не нашел, у меня сложилось такое ощущение что его вообще нет. Я как-то делал подобное в программе "компьютерный зал", для переключателя, помогло одно из двух мной предложенных, правда уже не помню точно какое.
Бороться и искать, найти и перепрятать

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение visualman » 19.09.2011 (Пн) 19:18

Хакер писал(а):В чём проблема? Ты не знаешь, какое сообщение надо послать окну, чтобы элемент стал чекнутым (не путать с чёкнутым)?

ДаДа!!!! Именно этого я не знаю!
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение ger_kar » 19.09.2011 (Пн) 19:33

visualman писал(а):ДаДа!!!! Именно этого я не знаю!
Кстати тоже интересно было-бы узнать, может специальное сообщение есть для этого.
visualman, а ты пробовал WM_LBUTTONDOWN и WM_LBUTTONUP посылать?
Бороться и искать, найти и перепрятать

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

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение Хакер » 19.09.2011 (Пн) 19:41

visualman писал(а):ДаДа!!!! Именно этого я не знаю!

LB_SETSEL
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение visualman » 19.09.2011 (Пн) 20:23

Хакер писал(а):
visualman писал(а):ДаДа!!!! Именно этого я не знаю!

LB_SETSEL
Последний раз редактировалось visualman 20.09.2011 (Вт) 11:15, всего редактировалось 1 раз.
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

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

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение Хакер » 19.09.2011 (Пн) 20:37

Вот ты попробуй. Я в спорных случаях всегда испытываю, прежде чем написать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение visualman » 19.09.2011 (Пн) 23:24

Хакер писал(а):Вот ты попробуй. Я в спорных случаях всегда испытываю, прежде чем написать.

Блин! Сколько раз я её описание перечитывал за 3 дня...
Спасибо большое! На VBшном листе работает. Проверю завтра на дельфях.

Спасибо!
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Re: Установка флагов итемов в CheckedListBox чужого приложен

Сообщение visualman » 20.09.2011 (Вт) 10:33

Увы увы ((( Ни с TNewCheckListBox, ни с CheckedListBox из VS, не работает. Только с VBшным.

Возвращает LB_ERR.

GetLastError выдал: Операция успешно завершена.

Прицепляю проект
Вложения
LB_SEL.rar
(1.5 Кб) Скачиваний: 53
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 23

    TopList