Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Добрый день! Нужна помощь со стороны при написании части кода для разрабатываемой утилиты. Вначале дам разрабатываемой утилите кодовое название - "Внештатный редактор реестра". Основное отличие от системного редактора реестра должно заключаться в том, что он и в частности его интерфейс должен отображать неполное дерево реестра и уметь работать с этим деревом как это делает штатное средство для работы с реестром Windows. Такое вот задание мне "всучили" и просили разработать утилиту. "Падать лицом в грязь" не хочется, но и не обойтись без помощи опытных программистов, не понаслышке знающих реестр Windows. Заранее буду нижайше кланяться за оказанную помощь. Мое видение проблемы, и исходя из поставленной мне задачи представил такой интерфейс (см. изображение). [img=http://www.sql.ru/images/интерфейс_утилиты.jpg] В левый фрейм окна понадобиться включить такие компоненты Visual Basic 6.0 как TreeView и ImageList. В правый фрейм окна - ListView. Теперь по поводу кустов реестра отображаемых в левом фрейме окна. Это разделы реестра (см. изображение): HKEY_CURRENT_USER и HKEY_USERS и их подразделы - Software и те подразделы, которые в него войдут. Предполагается (временно вымышленные названия) в Software: Program A, Program B и т.п. (как пример дерева). Любой из подразделов - "Program" предполагается описать в инициализационном файле (INI-файл) и только он должен присутствовать в TreeView. При этом должна остаться возможность работать со всем этим "набором" через API-функции: редактирование значений имен отображенных в ListView параметров установленных приложений Windows (файл .ini). Значения параметров, которые подлежат отображению и редактированию: 1. значение параметра (По умолчанию) тип REG_SZ - пока не решено нужно ли оно вообще, но пусть будет. 2. значения, имена которых принадлежат к типу REG_DWORD. Небольшой пример INI-файла (по правилам штатного редактора реестра): windows registry editor 5.00 <пустая строка> [HKEY_CURRENT_USER\Software\Program A] "Table00"=dword:00000000 "Table01"=dword:00800000 <пустая строка> [HKEY_USERS\.DEFAULT\Software\Program A] "параметр"="значение" <пустая строка> Не мало, но для начала, пожалуй, все расписал. Просил бы листинг кода с небольшим пояснением основного. В листинг, пожалуйста, внесите декларацию API-функций и констант только тех, которые крайне необходимы. P.S. Ничего себе "замутил" вопросик, аж сам "запарился" пока писал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 22:52 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
А вообще, ты как-то странно подошел к вопросу - мол напишите мне все.... Разбивай на части, части на более мелкие части и решай по отдельности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 01:17 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Shocker.ProА вообще, ты как-то странно подошел к вопросу - мол напишите мне все.... Я старался - написать корректно, но как получилось так получилось и теперь не исправить. Если немного в сторону от темы, то я по национальности поляк и не владею русским яз. на столько, чтоб не допустить ни единой ошибки. Ну, это так... Я вообще не имел ввиду написать половину программы за меня. И знаете, сколько там еще кроме этого. И интерфейс мне не нужен! Это я для наглядности материала, чтоб визуально... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 01:47 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Ну, где мне еще ждать помощи, разве только в Microsoft... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 02:00 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Валентин67, вытаскивайте код свой лучше)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 02:12 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
aduka05admВалентин67, вытаскивайте код свой лучше)) Имелось в виду - код "в студию"!? А какой в этом смысл. Вообще кода еще пока нет ("все в голове, а голова на плечах"), но написать его не составит огромного труда, только время. Вся загвоздка в вопросе, который задан. Поначалу это предвидел и хотел разобраться, как это можно сделать - отнюдь не без помощи. Иначе, зачем бы мне просить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 02:35 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Могу только предложить исходники, когда проект будет закончен. Может, кто изъявит желание "покопаться" в коде готовой утилиты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 02:43 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Валентин67, Валентин67со всем этим "набором" через API-функции Игорь Горбонос вам нужен ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 02:51 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
aduka05admВалентин67со всем этим "набором" через API-функции Игорь Горбонос вам нужен ) Да, но он наверное за прошлый раз на меня обиделся за VB.Net, хотя я не предполагал, что наступлю... Просто Эндрю нужно поначалу в VB разобраться. Вон видите, что и я еще не все знаю, а уже потом и с .NET можно пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 03:08 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Ой, простите! Это был (просмотрев "курилку") не Игорь Горбонос, а другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 03:26 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Валентин67, может пригодится , вывод файлов ,очень удобный способ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 03:38 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Валентин67, по вашей теме Итак, начнем: 1. Нажмите кнопку "Пуск" 2. Выберите меню "Выполнить" 3. В появившемся диалоговом окне, в текстовое поле впишем: regedit 4. Нажмем кнопку "ОК" 5. В открывшемся редакторе реестра, выберем меню Реестр\Экспорт файла реестра 6. Впишем любое, понравившееся нам имя файла, и нажмем кнопку "Сохранить" Теперь я за Вас спокоен, и мы можем перейти к нашей статье. Почему же такое "строгое" начало? Все дело в том, что Windows хранит в реестре все свои настройки и настройки программ, которые в нем работают. Начиная от внешнего графического вида и кончая соответствием расширений файлов их программам. Поэтому любое неграмотное вмешательство в реестр, может привести к тому, что Ваш Windows … Необходимость в месте хранения информации возникла, наверно, с момента создания самой первой операционной системы (ОС). И по мере усложнения ОС – усложнялось и хранение самой информации о ней. До появления Win 95 эта информация хранилась в многочисленных ini-файлах (директория Windows/System). Однако, по мере наращивания мощностей операционной системы – это становилось все более неудобным. И Win 95, уже как новая платформа, практически полностью перешел на хранение информации в реестре. Практически полностью – так мы говорим потому, что "осколки старого" все еще живы даже в Win Me (например, Win.ini, System.ini). Visual Basic, как и любая другая среда программирования, должна уметь обращаться к информации системы. Что он и делает, используя ряд встроенных функций (см. Часть 1). Но и тут все далеко неоднозначно. Если в VB3 и VB4 с помощью этих функций мы могли обратиться к любому ini-файлу, то, начиная с VB5, данные функции работают только с реестром и только с небольшой веточкой в нем. По-видимому, разработчики VB, предвидя нарастание увлечения программированием на VB и VBA, решили обезопасить реестр от вмешательства дилетантов. В большинстве работ начинающих программистов – этого вполне достаточно. А вот работа с ini-файлами теперь возможна только через API-функции (?). Как работать с ними см. Часть 2. Ну и, наконец, мы считаем себя уже "маститыми" программистами и работать хотим со всем реестром. Бейсик позволяет делать и это, но опять же работая через API-функции. Как это делается, мы будем изучать в Части 3. Часть 1. Встроенные функции работы с реестром в Visual Basic. Таких функций всего четыре: Имя функции Описание функции Код: plaintext Код: plaintext Код: plaintext Код: plaintext Все они работают с одной конкретной веткой реестра, а именно: Код: plaintext Код: plaintext 1. 2. section – так же строковый параметр, определяет имя подпапки, где хранятся все значения. Таких папок может быть от одной до … Т.е. здесь Вы формируете наличие и расположение папок, так как Вам удобно. key – строковый параметр, имя, под которым будет храниться Ваше значение. Как рекомендация, давайте ему осмысленные значения. setting – непосредственно само сохраняемое значение. [, default] – судя по квадратным скобкам, Вы уже догадались, что это необязательный параметр. Однако желательно все же его заполнять. По крайней мере – это избавит Вас от громоздкой проверки при запуске приложения самый первый раз, когда еще ничего в реестре Вашей программой не прописано. Для закрепления материала маленький примерчик, демонстрирующий эти две функции. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Функция DeleteSetting имеет чуть более простую структуру: Код: plaintext И снова небольшой пример. Добавьте код в Form_Unload, чтобы он выглядел так: Код: plaintext 1. 2. 3. 4. 5. 6. Данная строка удаляет только один параметр ("Left"). Если же нам необходимо удалить весь подраздел, то строка должна выглядеть следующим образом: Код: plaintext 1. Код: plaintext Разместим на форме кнопку, которая будет считывать массив параметров подпапки "Position" и выдавать ее в заголовок. Не забудьте удалить последние две строки в Form_Unload, посвященные, удалению параметров. Добавим код для кнопки: Код: plaintext 1. 2. 3. 4. 5. 6. 7. С помощью функции GetAllSettings, считываем в переменную arrSettings двумерный массив значений. Затем циклом For-Next проходим от первого значения до последнего (в нашем случае их только два). И внутри цикла присваиваем заголовку программы считываемые значения. Обратите внимание, что второй компонент в массиве может принимать только значения 0 или 1. Если 0, то считывается заголовок параметра (key). Если 1, то считывается его значение (setting). На этом со встроенными функциями бейсика, посвященных реестру можно закончить. Работа с ini-файлами. Как говорилось выше, ini-файлы – это наследие прошлого. Хорошо это или плохо? Однозначного ответа нет. Существует много сторонников ini-файлов, и их основным аргументом является доступность и легкость в редактировании. Что такое, по сути, ini-файл? Это текстовый файл, разбитый внутри на секции. Заголовок каждой секции заключен в квадратные скобки. Каждая секция состоит из строк, представляющих собой название параметра (ключ) и через равно (=) – его значение. Все элементарно просто и понятно для восприятия. Однако это же самое является и отрицательным моментом. Учитывая, что нынешний Windows занимает порядка 150-300 мегабайт, имеет массу встроенных программ и каждой из них необходим свой собственный ini-файл. А, кроме того, мы инсталлируем у себя, как минимум, Офис. А как максимум еще 3-4 десятка программ. Представляете в какую "выгребную яму" превратится директория, хранящая ini-файлы? Кроме того, из-за своей простоты, ini-файлы не могут предоставить иерархическую структуру вложенности, то, что так легко удается реестру. И в заключение: ini-файл – это отдельный файл, т.е. принципиально он может храниться в любом месте, а не только Windows\System. Насколько усложнится поиск необходимого файла, из-за кажущейся "простоты редактирования". Однако, несмотря на все минусы ini-файлы продолжают жить. Не так вольготно, как в Windows 3x, но все же. По-прежнему сохраняются 2 основных файла, несущих информацию о самом Windows (win.ini, system.ini). Поэтому давайте разберемся, как все-таки с ними надо работать. Встроенных VB-функций для работы с ini-файлами нет, однако существуют API-функции. Излагаемый ниже материал полностью приведен в Листинге. Его можно просто скопировать и оформить как отдельный модуль или класс, который подключается по мере надобности. Код: plaintext 1. 2. Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Давайте сделаем маленький пример, чтобы стало понятнее, как работает наша функция. В качестве примера возьмем всем известную игру "Минер". Расположите на форме кнопку и список. При нажатии на кнопку в список последовательно передаются значения из секции [Сапер]. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Часть 3. Работа с реестром. Теперь мы подходим к самому главному: работе с реестром. Реестр в Windows служит хранилищем всех настроек. Любое неадекватное вмешательство может привести к краху всей системы. Поэтому, если Вы не выполнили указаний, данных в самом начале статьи – сейчас самое время их сделать. Остановимся чуть подробнее на структуре реестра. 2 основных его преимущества: сохранение всей информации в едином месте и иерархическая структура. Начнем с "самого верха". Здесь имеется 6 основных разделов (ключей): Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. HKEY_CURRENT_USER\SOFTWARE\VB AND VBA PROGRAM SETTINGS А когда Вы поймете суть работы функций, то заменить пути сохранения в реестре необходимых Вам данных не составит труда. Создание раздела. Создадим новый подраздел TestRegistry в вышеуказанной ветке. Расположим на форме кнопку Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. В обработке события кнопки попросим пользователя ввести Имя Подраздела. Затем проследим, чтобы перед названием стоял знак "\". И, наконец, проверим функцию, создающую новый подраздел. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Создание параметра. После того, как раздел или подраздел создан, необходимо в нем создать параметр и присвоить ему значение. Допустим, в предыдущем шаге мы создали подраздел "TestRegistry". Теперь внесем имя параметра "Test1" и его значение "New Value". Для этого нам понадобится все та же форма и вторая кнопка на ней Command2. Инициализация переменных у нас уже описана выше, в предыдущем шаге. Добавим обработку нажатия на вторую кнопку. Запросим у пользователя сначала имя параметра, а затем его значение. И если все ОК – то сделаем запись. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Итак, у нас создан подраздел "TestRegistry", а в нем параметр "Test1". Располагаем на форме третью кнопку – Command3. Как и во всех предыдущих наших манипуляциях, вначале мы должны открыть раздел, а по окончании работы закрыть его, освободив манипулятор. Удаление параметра производится с помощью API-функции RegDeleteValue. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. В принципе, все различия между удалением параметра и удалением раздела (подраздела), заключаются только в использовании другой API-функции: RegDeleteKey. Все остальное – идентично. Размещаем на форме четвертую кнопку и удаляем раздел "TestRegistry". Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. В связи с тем, что мы удалили в предыдущей работе наш подраздел и его содержимое, давайте сначала восстановим удаленные параметры: Запустим на выполнение сначала первую кнопку, а затем вторую. Проверим через Regedit. У нас должно получиться: подраздел "TestRegistry", а в нем параметр "Test1" со значением "New Value". Добавим очередную кнопку Command5. Код: plaintext 1. 2. 3. Обратите внимание, что сама функция возвращает тип Variant, т.к. значение параметра может быть не только строковым числом. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Подробно изучив выше перечисленные функции и процедуры, Вы, при необходимости, можете их использовать для получения названий подразделов или значений всех параметров подраздела. Собирать эти названия можно в массив или, например, напрямую – в ListBox. Перебор параметров осуществляется с помощью цикла Do … Loop (или While … Wend кому как привычнее), до тех пор пока искомое значение равно ERROR_SUCCESS. Разобравшись со всеми функциями, Вы можете использовать представленный Листинг, как отдельный модуль, или преобразовать его в отдельный класс. Обратите внимание: в представленном листинге функции отображены в несколько ином виде – более глобальном. Часть 4. Работа с реестром через подключаемые библиотеки. Изначально эта часть не была запланирована для данной статьи. Подтолкнул меня к написанию один из "Советов…" Андрея Колесова и Ольги Павловой, которые вот уже на протяжении ряда лет публикующих в "Компьютер-Пресс" свои интересные находки по VB и VBA. Так вот, оказывается, что при инсталляции VB происходит установка на Ваш компьютер одной маленькой библиотеки (всего 32 Кб) - REGTOOL5.DLL. Для любознательных указываю полный путь: …\Program Files\Microsoft Visual Studio\Common\Tools\APE\REGTOOL5.DLL. Она содержит всего 4 функции для работы с реестром, однако использование этих функций значительно упрощает доступ к реестру. Итак, для начала работы подключим данную библиотеку к нашему проекту (Проект Standard EXE; форма + 5 кнопок на ней). Для подключения выберем меню: Project/References и в открывшемся диалоговом окне отметим опцию Registry Access Functions. Не забудем нажать ОК :-). Теперь, когда библиотека подключена к проекту, небходимо объявить переменную. Делаем это в разделе деклараций Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. NB! Данная библиотека может работать с любой веткой реестра. Присвоим нашей ПЕРВОЙ кнопке возможность создания нового параметра и значения для него. Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. Ну и, наконец, оставшиеся две функции служат для поиска (получения) значений указанных параметров. Запишем код для ЧЕТВЕРТОЙ кнопки. Основа кода взята из "Советов …" Андрея Колесова Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. В заключение: Не только эта библиотека имеет доступ к реестру. Если Вы подключили к своему проекту библиотеку Word'а (начиная с версии 8) например для проверки орфографии, то параллельно, для получения значений реестра можно воспользоваться ее объектом System, а конкретнее свойствами PrivateProfileString и ProfileString. Что самое смешное, таких возможностей не имеет ни Excel, ни Access, ни PowerPoint, ни FrontPage. Ох уж этот Microsoft :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 03:56 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Валентин67Shocker.ProА вообще, ты как-то странно подошел к вопросу - мол напишите мне все.... Я старался - написать корректно, но как получилось так получилось и теперь не исправить. Если немного в сторону от темы, то я по национальности поляк и не владею русским яз. на столько, чтоб не допустить ни единой ошибки. Ну, это так... Я вообще не имел ввиду написать половину программы за меня. И знаете, сколько там еще кроме этого. И интерфейс мне не нужен! Это я для наглядности материала, чтоб визуально... Да не, пишешь ты вполне понятно. Ты просто просишь подсказать, а что подсказать - не указываешь. Получается, что подсказать нужно все. Тем временем сама эта задача состоит из множества частей, там и загрузка дерева и работа с ини-файлом и работа с реестром, форма создания/редактирвоания значения и т.п. Ты самостоятельно должен разработать общую схему работы приложения, мы можем подсказывать только детали. Ну или рано браться за такой проект, тренируйся на более простых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 09:15 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Shocker.ProДа не, пишешь ты вполне понятно. Ты просто просишь подсказать, а что подсказать - не указываешь. Получается, что подсказать нужно все, мы можем подсказывать только детали. Признаю - "ступил на старости лет". Вся проблема "крутится" вокруг семейства объектов Node. В частности метода Add (иерархия). Каким образом можно построит дерево не ручками, а читая из файла, по структуре напоминающий файлы реестра с расширение REG. То есть, как научить TreeView при построении дерева различать самому, где раздел реестра, где подраздел (суть отношений с предшествующим узлом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 12:17 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Валентин67как научить TreeView при построении дерева различать самому, где раздел реестра, где подраздел (суть отношений с предшествующим узлом). гм ну есть у тебя строка "HKEY_CURRENT_USER\Software\Program A" прежде всего, ее надо разбить с помощью Split на части. Потом последовательно добавить узлы, в дерево, игнорируя ошибки (так как некоторые узлы могли туда быть добавлены ранее) не самое оптимальное решение по скорости (некоторые узлы там уже могут быть, будет много игнорируемых ошибок) - но если узлов не много, то не страшно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 12:22 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
зачем нужно писать очередной велосипед, когда уже таких редакторов готтовых и бесплатных пруд-пруди. поищи лучше готовый и не мучайся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 12:40 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Konst_Oneзачем нужно писать очередной велосипед, когда уже таких редакторов готтовых и бесплатных пруд-пруди. поищи лучше готовый и не мучайся Учицца, учицца и еще раз учицца. Вполне себе неплохое учебное задание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 12:45 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Shocker.ProKonst_Oneзачем нужно писать очередной велосипед, когда уже таких редакторов готтовых и бесплатных пруд-пруди. поищи лучше готовый и не мучайся Учицца, учицца и еще раз учицца. Вполне себе неплохое учебное задание. ну если разве что в качестве учебного задания, то тогда да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 12:47 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
вот очень неплохой пример редактора INI-файлов. можете взять себе за основу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 12:49 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Shocker.Proдобавить узлы, в дерево, игнорируя ошибки Как корректно устроить такую проверку. Shocker.Proне самое оптимальное решение по скорости, но если узлов не много, то не страшно Узлов действительно не много наберется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 12:50 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Валентин67Как корректно устроить такую проверку. Название узла давать не только как имя, но и как ключ узла. Тогда повторно узел с таким же ключом не добавится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 12:53 |
|
||
|
Внештатный редактор реестра
|
|||
|---|---|---|---|
|
#18+
Маленький пример для чтения ключей из реестра, написал на VB.NET 2008 за 20 минут где-то. Там намного проще... Класс предоставляет много функций для управления, перечисления, а также прав доступа. Добавляет в TreeView ключи, а в ListView имена параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 13:03 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=123&tid=2159561]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 419ms |

| 0 / 0 |
