Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
31:03:2008, 14:58
|
|
Новенький ![]() Группа: Программист Сообщений: 59 Регистрация: 31:08:2007 Из: Украина, Киев Пользователь №: 12 558 Специализация: Студент Репутация: 0
|
Вообщем впредь вопросы можно задавать тут....
Пожалуй я начну: 1) Объяните мне как создать раздел в реэстре? Я пишу так : Код const key_path = 'блаблабла'; var hk : HKEY; ... RegCreateKey (HKEY_LOCAL_MACHINE,key_path,&hk); Естественно ничего не выходит..потому что я не пойму зачем тут &hk? И что оно дает? 2) Как создать строковый параметр с именем "blablabla" с описанием(необязательно). Пишу так : Код RegSetValueEx(hk,'StringValue',0, REG_SZ, <не пойму что тут> , <и тут>); Чем можете помочь? |
|
Сообщение
#1
|
|
![]() |
|
|
31:03:2008, 15:22
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Берите TRegistry и не мучайтесь.
|
|
Сообщение
#2
|
|
|
|
31:03:2008, 15:59
|
|
Новенький ![]() Группа: Программист Сообщений: 59 Регистрация: 31:08:2007 Из: Украина, Киев Пользователь №: 12 558 Специализация: Студент Репутация: 0
|
Не люблю использовать компоненты...вопрос остаеться в силе!
|
|
Сообщение
#3
|
|
|
|
31:03:2008, 16:46
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
1. это не компонент.
2. ссзб http://forum.codeby.net/topic19586s0.html?...amp;#entry90087 , читать до конца! |
|
Сообщение
#4
|
|
|
|
31:03:2008, 19:41
|
|
Новенький ![]() Группа: Программист Сообщений: 59 Регистрация: 31:08:2007 Из: Украина, Киев Пользователь №: 12 558 Специализация: Студент Репутация: 0
|
Цитата ссзб я хоть и на ИБ учусь, но такой шифровки еще не понимаю.Насчет второго: можно однострочный примерчик ? |
|
Сообщение
#5
|
|
|
|
1:04:2008, 05:40
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
ссзб - "сам себе злобный буратино" - типа: легких путей не ищет
Примеры есть в Demos. |
|
Сообщение
#6
|
|
|
|
1:04:2008, 08:05
|
|
Новенький ![]() Группа: Программист Сообщений: 59 Регистрация: 31:08:2007 Из: Украина, Киев Пользователь №: 12 558 Специализация: Студент Репутация: 0
|
В том то и фишка что не Delphi пользуюсь а CodeGear RAD Studio 2007. И в демосах я в упор не нашел слова TRegistry. А справка там конченая...ничего путевого в ней нету вообще!!
|
|
Сообщение
#7
|
|
|
|
1:04:2008, 16:03
|
|
Новенький ![]() Группа: Программист Сообщений: 59 Регистрация: 31:08:2007 Из: Украина, Киев Пользователь №: 12 558 Специализация: Студент Репутация: 0
|
Хорошо...порпобовал с TRegistry.
Все получилось, но....как создать параметр "блаблабла" типа REG_MULTI_SZ и REG_DWORD???. Функций WriteDword & WriteMultiString нету.... |
|
Сообщение
#8
|
|
|
|
2:04:2008, 12:00
|
|
Новенький ![]() Группа: Программист Сообщений: 33 Регистрация: 17:04:2006 Из: Украина, Вишневый Пользователь №: 3 340 Репутация: 0
|
Хорошо...порпобовал с TRegistry. Все получилось, но....как создать параметр "блаблабла" типа REG_MULTI_SZ и REG_DWORD???. Функций WriteDword & WriteMultiString нету.... Для REG_DWORD используй WriteInteger. А вот с REG_MULTI_SZ мне и самому интересно, пишу на Builder С++, но там тоже лажа с записью в этот тип. Где-то читал, что есть какой-то дополнительный TRegistry для делфи который может работать с этим типом. Но пока не нашёл. Неужели никто не знает как это делается? Сообщение отредактировал brink - 2:04:2008, 12:03 |
|
Сообщение
#9
|
|
|
|
2:04:2008, 12:56
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
|
|
Сообщение
#10
|
|
|
|
2:04:2008, 14:07
|
|
Новенький ![]() Группа: Программист Сообщений: 59 Регистрация: 31:08:2007 Из: Украина, Киев Пользователь №: 12 558 Специализация: Студент Репутация: 0
|
Цитата Где-то читал, что есть какой-то дополнительный TRegistry для делфи который может работать с этим типом. Но пока не нашёл. Нима такого компонента. Есть модуль CODE unit Reg; {$R-,T-,H+,X+} interface uses Registry, Classes, Windows, Consts, SysUtils; type TReg = class(TRegistry) public procedure ReadStringList(const name : string; list : TStringList); procedure WriteStringList(const name : string; list : TStringList); end; implementation //*** TReg ********************************************************************* //------------------------------------------------------------------------------ // Запись TStringList ввиде значения типа REG_MULTI_SZ в реестр //------------------------------------------------------------------------------ procedure TReg.WriteStringList(const name : string; list : TStringList); var Buffer : Pointer; BufSize : DWORD; i, j, k : Integer; s : string; p : PChar; begin {подготовим буфер к записи} BufSize := 0; for i:=0 to list.Count-1 do inc(BufSize, Length(list[i])+1); inc(BufSize); GetMem(Buffer, BufSize); k := 0; p := Buffer; for i:=0 to list.Count-1 do begin s := list[i]; for j:=0 to Length(s)-1 do begin p[k] := s[j+1]; inc(k); end; p[k] := chr(0); inc(k); end; p[k] := chr(0); {запись в реестр} if RegSetValueEx(CurrentKey, PChar(name), 0, REG_MULTI_SZ, Buffer, BufSize) <> ERROR_SUCCESS then raise ERegistryException.CreateResFmt(@SRegSetDataFailed, [name]); end; end. Кстате он тоже с байдой : @SRegSetDataFailed - вот тут не хочет компилироваться. Можно конечно записать так : Код RegSetValueEx(CurrentKey, PChar(name), 0, REG_MULTI_SZ, Buffer, BufSize) - без проверки.Но все равно, потом в основной программе подключать дополнительный модуль, создавать новую переменную типа TReg...кароче ввесь смысл написать маленькое приложение пропадает. Изначально я и справшивал как работать без TRegistry... Вот я еще нашел такой модуль, довольно-таки интересно.
ApiRegistry_Module.zip ( 1.65 килобайт )
Кол-во скачиваний: 0 |
|
Сообщение
#11
|
|
|
|
2:04:2008, 14:20
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Кстате он тоже с байдой : @SRegSetDataFailed - вот тут не хочет компилироваться. Это не он с "байдой" а ... короче надо справку штудировать. Но все равно, потом в основной программе подключать дополнительный модуль, создавать новую переменную типа TReg...кароче ввесь смысл написать маленькое приложение пропадает. И что тут такого страшного, в подключении модуля? Или совсем без ООП пишите? создавать новую переменную типа TReg Все по ситуации смотрится, надо создадим, но как показывает практика в большинстве случаев это ненадо. |
|
Сообщение
#12
|
|
|
|
2:04:2008, 14:57
|
|
Новенький ![]() Группа: Программист Сообщений: 59 Регистрация: 31:08:2007 Из: Украина, Киев Пользователь №: 12 558 Специализация: Студент Репутация: 0
|
Все проблема решена. Всем спасибо.
@SRegSetDataFailed - где про нее можно почитать? Кроме как в справке. Сообщение отредактировал misterio - 2:04:2008, 15:15 |
|
Сообщение
#13
|
|
|
|
2:04:2008, 15:19
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
в RTLConsts.pas (D7)
|
|
Сообщение
#14
|
|
![]() |
|
Текстовая версия | Сейчас: 17:05:2008 - 06:24 |