 |
|

19.02.2010, 18:21
|
|
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
С нами:
8634346
Репутация:
16
|
|
а по поводу реестра, у кого-нить есть рабочий исходник? А то я офигеваю с типов PAnsiChar и Cardinal 
Всё никак с параметрами угадать не могу))))
Последний раз редактировалось DiffiT; 19.02.2010 в 18:23..
|
|
|

19.02.2010, 18:28
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами:
9399214
Репутация:
52
|
|
DiffiT что именно хочешь с реестром делать. пример чтения и поиска есть... записать написать не сложно
Последний раз редактировалось transserg; 19.02.2010 в 18:34..
|
|
|

19.02.2010, 18:49
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами:
9399214
Репутация:
52
|
|
Код:
Procedure ScanRegistry(RootKey:HKEY;SubKey:String);
var
hSubKey:HKEY;
NumKey,NumValue:DWORD;
NameKey:Pointer;
NameValue:Pointer;
BufSize:DWORD;
KeyError,ValueError:integer;
begin
NumKey:=0;
NumValue:=0;
BufSize:=2048;
if ThreadExit then
exit;
GetMem(NameValue,BufSize);
GetMem(NameKey,BufSize);
try
if RegOpenKeyEx(RootKey, PChar(SubKey),0,KEY_ALL_ACCESS,hSubKey)=ERROR_SUCCESS then
begin
ValueError:=RegEnumValue(hSubKey,NumValue,NameValue,BufSize, nil, nil, nil, nil);
if PChar(NameValue)<>'' then
begin
ResultAnalize(RootKey,PChar(SubKey),NameValue);
end;
inc(NumValue);
while ValueError=ERROR_SUCCESS do
begin
BufSize:=2048;
try
ValueError:=RegEnumValue(hSubKey,NumValue,NameValue,BufSize, nil, nil, nil, nil);
if ValueError=ERROR_SUCCESS then
if PChar(NameValue)<>'' then
begin
ResultAnalize(RootKey,PChar(SubKey),NameValue);
inc(TotalValue);
end;
finally
inc(NumValue);
end;
end;
Sleep(2);
KeyError:=ERROR_SUCCESS;
while KeyError=ERROR_SUCCESS do
begin
BufSize:=2024;
KeyError:=RegEnumKeyEx(hSubKey,NumKey,NameKey,BufSize,nil,nil,nil,nil);
inc(TotalKeys);
if KeyError=ERROR_SUCCESS then
if SubKey='' then
ScanRegistry(RootKey,PChar(Concat(SubKey,PChar(NameKey))))
else
ScanRegistry(RootKey,PChar(Concat(SubKey,'\',PChar(NameKey))));
inc(NumKey);
end;
end;
finally
FreeMem(NameKey);
FreeMem(NameValue);
RegCloseKey(hSubKey);
end;
end;
процедура обхода дерева реестра
первый параметр подраздел один из
Код:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
второй параметр это ключ с которого начнется перебор если пустой то будет перебирать с корня под раздела
Код:
ResultAnalize(RootKey,PChar(SubKey),NameValue);
процедура анализа в которой ты собственно и удовлетворяют ли считанные данные условию поиска
|
|
|

19.02.2010, 18:53
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами:
9399214
Репутация:
52
|
|
вот часть кода на чтение значения
Код:
var
hSubKey : HKEY;
MyValType : DWORD;
BufSize : DWORD;
Buf: Pointer;
.....
if RegOpenKey(RootKey, SubKey,hSubKey) = ERROR_SUCCESS then
try
if RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, nil, @BufSize) =ERROR_SUCCESS then
begin
GetMem(Buf, BufSize);
try
if RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, Buf, @BufSize) =ERROR_SUCCESS then
begin
end;
......
SubKey "путь" до ключа в реестре
ValueName имя параметра
Buf указатель на значение параметра
|
|
|

19.02.2010, 18:54
|
|
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
С нами:
8634346
Репутация:
16
|
|
Сообщение от transserg
DiffiT что именно хочешь с реестром делать. пример чтения и поиска есть... записать написать не сложно
мне простейщие операции чтение\запись))) функции уже до меня объявлены, а с параметрами борода 
|
|
|

19.02.2010, 18:55
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами:
9399214
Репутация:
52
|
|
DiffiT стукни в асю =)
|
|
|

19.02.2010, 18:57
|
|
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
С нами:
8634346
Репутация:
16
|
|
RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, nil, @BufSize)
вот в этих сцабаках наверное и есть проблема 
|
|
|

19.02.2010, 19:12
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами:
9399214
Репутация:
52
|
|
Код:
hSubKey: HKEY;
ValueName:Pchar;
MyValType:DWORD;
BufSize:DWORD;
|
|
|

19.02.2010, 20:05
|
|
Познающий
Регистрация: 14.05.2009
Сообщений: 92
С нами:
8944114
Репутация:
5
|
|
Сообщение от sn0w
пока на нее не подсел переходи на цпп)
Сорри за оффтоп, но почему дельфи так не любят? Что в ней нет, что есть в cpp? 
|
|
|

19.02.2010, 21:34
|
|
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
С нами:
9846041
Репутация:
1177
|
|
Сообщение от iGlass
Сорри за оффтоп, но почему дельфи так не любят? Что в ней нет, что есть в cpp? 
Мдя уж...
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Литература Delphi
|
Sams |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
2 |
19.03.2010 19:46 |
|
Скачать Delphi 7, помощь.
|
_casper_ |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
20 |
08.12.2009 04:54 |
|
Virus.Win32.Induc.a – новый вирус для Delphi
|
ErrorNeo |
Уязвимости |
37 |
26.08.2009 00:33 |
|
Virus.Win32.Induc.a или "Снова записки новичка"
|
_=(mac)=_ |
Защита ОС: вирусы, антивирусы, файрволы. |
5 |
24.08.2009 23:34 |
|
Помогите с WinAPI в Delphi
|
EST a1ien |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
13 |
12.10.2006 11:06 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|