Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Работа с реэстром!
misterio
Вставить ник
сообщение 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
 
Новая тема 
Ответов (1 - 13)
sax_ol
Вставить ник
сообщение 31:03:2008, 15:22
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Берите TRegistry и не мучайтесь.
Подняться вверх 
 
Сообщение #2
misterio
Вставить ник
сообщение 31:03:2008, 15:59
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 59
Регистрация: 31:08:2007
Из: Украина, Киев
Пользователь №: 12 558
Специализация: Студент



Репутация: - 0 +


Не люблю использовать компоненты...вопрос остаеться в силе!
Подняться вверх 
 
Сообщение #3
sax_ol
Вставить ник
сообщение 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
misterio
Вставить ник
сообщение 31:03:2008, 19:41
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 59
Регистрация: 31:08:2007
Из: Украина, Киев
Пользователь №: 12 558
Специализация: Студент



Репутация: - 0 +


Цитата
ссзб
я хоть и на ИБ учусь, но такой шифровки еще не понимаю.
Насчет второго: можно однострочный примерчик ?
Подняться вверх 
 
Сообщение #5
sax_ol
Вставить ник
сообщение 1:04:2008, 05:40
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


ссзб - "сам себе злобный буратино" - типа: легких путей не ищет
Примеры есть в Demos.
Подняться вверх 
 
Сообщение #6
misterio
Вставить ник
сообщение 1:04:2008, 08:05
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 59
Регистрация: 31:08:2007
Из: Украина, Киев
Пользователь №: 12 558
Специализация: Студент



Репутация: - 0 +


В том то и фишка что не Delphi пользуюсь а CodeGear RAD Studio 2007. И в демосах я в упор не нашел слова TRegistry. А справка там конченая...ничего путевого в ней нету вообще!!
Подняться вверх 
 
Сообщение #7
misterio
Вставить ник
сообщение 1:04:2008, 16:03
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 59
Регистрация: 31:08:2007
Из: Украина, Киев
Пользователь №: 12 558
Специализация: Студент



Репутация: - 0 +


Хорошо...порпобовал с TRegistry.

Все получилось, но....как создать параметр "блаблабла" типа REG_MULTI_SZ и REG_DWORD???.
Функций WriteDword & WriteMultiString нету....
Подняться вверх 
 
Сообщение #8
brink
Вставить ник
сообщение 2:04:2008, 12:00
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 33
Регистрация: 17:04:2006
Из: Украина, Вишневый
Пользователь №: 3 340



Репутация: - 0 +


Цитата(misterio @ 1:04:2008, 18:03 ) *
Хорошо...порпобовал с TRegistry.

Все получилось, но....как создать параметр "блаблабла" типа REG_MULTI_SZ и REG_DWORD???.
Функций WriteDword & WriteMultiString нету....


Для REG_DWORD используй WriteInteger.
А вот с REG_MULTI_SZ мне и самому интересно, пишу на Builder С++, но там тоже лажа с записью в этот тип.
Где-то читал, что есть какой-то дополнительный TRegistry для делфи который может работать с этим типом. Но пока не нашёл.

Неужели никто не знает как это делается? sad.gif

Сообщение отредактировал brink - 2:04:2008, 12:03
Подняться вверх 
 
Сообщение #9
sax_ol
Вставить ник
сообщение 2:04:2008, 12:56
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Цитата(brink @ 2:04:2008 - 14:00) *
Неужели никто не знает как это делается?

Или использовать WriteBinaryData, или дописать метод.
Подняться вверх 
 
Сообщение #10
misterio
Вставить ник
сообщение 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
sax_ol
Вставить ник
сообщение 2:04:2008, 14:20
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Цитата(misterio @ 2:04:2008 - 16:07) *
Кстате он тоже с байдой : @SRegSetDataFailed - вот тут не хочет компилироваться.

Это не он с "байдой" а ... короче надо справку штудировать.
Цитата(misterio @ 2:04:2008 - 16:07) *
Но все равно, потом в основной программе подключать дополнительный модуль, создавать новую переменную типа TReg...кароче ввесь смысл написать маленькое приложение пропадает.

И что тут такого страшного, в подключении модуля? Или совсем без ООП пишите?

Цитата(misterio @ 2:04:2008 - 16:07) *
создавать новую переменную типа TReg

Все по ситуации смотрится, надо создадим, но как показывает практика в большинстве случаев это ненадо.
Подняться вверх 
 
Сообщение #12
misterio
Вставить ник
сообщение 2:04:2008, 14:57
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 59
Регистрация: 31:08:2007
Из: Украина, Киев
Пользователь №: 12 558
Специализация: Студент



Репутация: - 0 +


Все проблема решена. Всем спасибо.

@SRegSetDataFailed - где про нее можно почитать? Кроме как в справке.

Сообщение отредактировал misterio - 2:04:2008, 15:15
Подняться вверх 
 
Сообщение #13
sax_ol
Вставить ник
сообщение 2:04:2008, 15:19
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


в RTLConsts.pas (D7)
Подняться вверх 
 
Сообщение #14


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 17:05:2008 - 06:24
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net