· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Работа со списком.

Посл.отвђт Сообщенiе


Дата: Окт 27, 2003 16:16:19 · Поправил: 1990

Здравствуйте!

Вот что выходит у меня: в mbox'e все в ряд,
а в списке - ни так как надо.
В приложении ключ и мой "метод". Даже понятия не
имею о работе со списком. Нужно, чтобы эти параметры
как-то менялись и
в реестре от изменения пунктов, менялись.
(А для начала, как правильно их в список выстроить?)
теряюсь в догадках. ;)
(Извините, за тупой стиль изложения;)
В приложении ключ и сам сорс.

Удачи!

97035774__1111.rar


Дата: Окт 28, 2003 06:08:03 · Поправил: q_q

1990
1) для разделения строк в MessageBox достаточно 0Dh;
2) LB_ADDSTRING добавляет ОДНУ строку признаком завершения, которой служить ноль, т.е. Вам надо по мере чтения из реестра добавлять (LB_ADDSTRING) элементы в listbox;
3) кто это Вас научил помещать Equates в сегмент const;
4) в случае успешного создания exe'шника Ваш bat-файл собщает AM.


Дата: Ноя 1, 2003 18:48:12

q_q
Спасибо! Но так и не понял, как реализовать:

2) LB_ADDSTRING добавляет ОДНУ строку признаком завершения, которой служить ноль, т.е. Вам надо по мере чтения из реестра добавлять (LB_ADDSTRING) элементы в listbox;

И ещё. Этот же самый код не работает под XP. Воины Дзёна!
Подскажите что делать с этим кодом. Я уже устал...
Вот исходник.

_1643724907__zizi.rar


Дата: Ноя 2, 2003 08:37:41

Ей, кто-нить откликнись!


Дата: Ноя 2, 2003 20:16:12

Можа хоть какие-нибудь мыслишки у кого есть? А, войны! Что-=то делать надо. А что про библиотеки графические, ещё быдете делать?


Дата: Ноя 3, 2003 00:35:02

Верно, в XP программа не работает.
Проблема в том, что функция RegEnumValue, ничего с реестра не считывает. Хотел тебе помочь, но разобраться в причинах этого не смог :( Есть одна идея - проблема с SECURITY_ATTRIBUTES, но как они работают не знаю :(


Дата: Ноя 3, 2003 06:49:02

1990
так и не понял, как реализовать
На каждой итерации RegEnumValue выполняй
invoke SendMessage, hList, LB_ADDSTRING, TRUE, addr szBuff2
только не забудь перенести
invoke GetDlgItem, hWnd, 1000
mov hList,eax
,чтобы hList был инициализирован.

По поводу xp и RegEnumValue - анализируй код ошибки.

Коментарии к исходнику:
1) Зачем push eax после
invoke GetDlgItem, hWnd, 1000
mov hList,eax
?
2) Зачем запрашивать KEY_WRITE, если предстоит только чтение?
3) Хороший стиль программирования предполагает проверку на ошибки работы API и их анализ
4) Хороший стиль программирования предполагает освобождение затребованных программой ресурсов, в твоем случае в ответ на успешное RegCreateKeyEx необходимо RegCloseKey.
5) Зачем повторно постить архив с кодом, если он не изменился.


Дата: Ноя 3, 2003 20:33:36

q_q
Спасибо! но архив немного различный. Проблему так и не решил.


Дата: Ноя 4, 2003 05:46:53

1990
Отличия в чем, нет reg-файла и убраны комментарии с четырех строк?

Проблему так и не решил.
Проблему со списком?
Ты добавил
invoke SendMessage, hList, LB_ADDSTRING, TRUE, addr szBuff2
перед
INVOKE lstrcat, addr szBuff, addr szBuff2
и перенес
invoke GetDlgItem, hWnd, 1000
mov hList,eax
перед
INVOKE RegCreateKeyEx, ...
и список не дополнился строчками из реестра?

Или проблему чтения рееестра под wxp?
Какой код ошибки возвращает RegEnumValue?
Вообще RegCreateKeyEx завершается успешно?


Дата: Ноя 5, 2003 09:28:33

q_q
Угу. понял я наконец. Спасибо! А вот "анализируй код ошибки под XP" - не получается понять почему не работает ;) "Вообще RegCreateKeyEx завершается успешно?" -успешно и Enum успешно.

И ещё, можно вопрос: а как в этом списке что-либо изменить, удалить, например. Просто мне нужна на работу прога для изменения автозагрузки, а везде XP и работать, со списком я не умею, как видел.
Ещё раз огромное спасибо!


Дата: Ноя 5, 2003 12:31:03 · Поправил: q_q

1990
RegCreateKeyEx ... успешно и Enum успешно
Т.е. RegCreateKeyEx возвращает ERROR_SUCCESS, а Enum сразу RROR_NO_MORE_ITEMS? А ветка в реестре точно еcть?

как в этом списке что-либо изменить
в listbox'е или реестре?


Дата: Ноя 5, 2003 12:48:23

q_q
В listbox'e что-то изменить и в реестре отразить эти изменения. Например, удалить пункт из листбоха, а из реестра параметр.
Как сие реализовать?


Дата: Ноя 6, 2003 03:53:38


Дата: Ноя 6, 2003 09:28:49

q_q
УУУ! Ну спасибо! Отличный исходник, главное - я теперь знаю про работу со списком. Ещё раз благодарствую!
Настоящий воин Дзён.
Смею думать что тема закрыта!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.070