Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

RegKeyDelete & SubKeys   Найти похожие ветки 

 
_Simon_   (2005-11-30 19:13) [0]


В KOL нет аналога функции:
function DeleteKey(const Key: String): Boolean;

Финкция из KOL


//[function RegKeyDelete]
function RegKeyDelete( Key: HKey; const SubKey: String ): Boolean;
begin
 Result := FALSE;
 if Key <> 0 then
   Result := RegDeleteKey( Key, PChar( SubKey ) ) = ERROR_SUCCESS;
end;


использует RegDeleteKey которая:
Windows NT: The RegDeleteKey function deletes the specified key.
This function cannot delete a key that has subkeys.

В Win32 SDK Delphi 7 ничего другого не нашел.
Написал следующее:


function RegKeyDeleteFull(Key: HKey; const SubKey: PChar): Boolean;
var
 List: PStrList;
 NewKey: HKey;
 i, count: Longint;
begin
 if Key <> 0 then
   begin
     NewKey:=RegAPIOpen(Key, SubKey, False);
     List:=NewStrList;
     RegKeyGetSubKeys(NewKey, List);
     count:=List.Count;
     if count = 0 then
       Result := RegDeleteKey(Key, SubKey) = ERROR_SUCCESS
     else {if count>0}
       begin
         for i:=0 to count-1 do
           RegAPIKeyDelete(NewKey, List.ItemPtrs[i]);
           //RegAPIClose(NewKey, List.ItemPtrs[i]);
       end;
     List.Free;
     RegKeyClose(NewKey);
   end {if Key <> 0}
  else
    Result := FALSE;
end;


Но ни с рекурсией, ни без нее (суб ключи только первого уровня вложенности)
всегда удаляется только один первый ключ.


 
MTsv DN   (2005-11-30 19:44) [1]

Привет...
Посмотри:
http://members.chello.nl/t.koning8/kolexregistry.zip
http://www.uus4u.com/download/modules/KOLnMCK/kol_registry.zip - это у меня.

Но это НЕ портированный registry.pas из Delphi в KOL. Я просто избавился от всех uses"ов которые увеличивали размер... Это я к тому, что пользоваться ее надо, как родной Delph"овой...

var
reg : TRegistry
begin
reg := TRegistry.Create(nil);

и т.д.

Переводил ОЧЕНЬ давно...тогда для моих нужд хватило и этого... А сейчас лень править :о)...

Вообще, рекомендую kolexregistry.zip

С Уважением MTsv DN


 
thaddy   (2005-11-30 20:42) [2]

Note that kolexregistry uses err.pas, so it will grow your code a bit.
But you can study the delete method from kolregistry.pas and apply that to your code. Or simply use kolregistry with USE_ERR undefined.

Deleting keys is dangerous! and can destroy a windows installation totally!

Deleting keys should always be done with a backup, that"s why I wrote KolExregistry.


 
_Simon_   (2005-12-01 20:14) [3]

Все это хорошо, но это лучше:

...
function SHDeleteKey(Key: HKey; const SubKey: PChar): LongInt; stdcall;

implementation

function SHDeleteKey; external "shlwapi.dll" name "SHDeleteKeyA";
...


Но трбует IE 4.0 (Уже практически не актуально).


 
Thaddy   (2005-12-02 15:26) [4]

Yes, that works very good, but remember: make a back up of the keys you delete! it is dangerous to delete keys and it is easy to make a mistake. The registry differs between OS versions and even between SP"s



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
3-1154037201
Адиль
2006-07-28 01:53
2006.10.01
Нереляционные базы данных


1-1156347510
Blacksus
2006-08-23 19:38
2006.10.01
Помогите с TStringgrid


2-1157997488
Adios
2006-09-11 21:58
2006.10.01
помогите разобраться


4-1148823766
ффф
2006-05-28 17:42
2006.10.01
виртуальный com порт


1-1156148868
DelphiLexx
2006-08-21 12:27
2006.10.01
Продвинутый PaintTo





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский