Главная страница
    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.46 MB
Время: 0.018 c
15-1157791053
Konstantin555
2006-09-09 12:37
2006.10.01
Что написать в BAT-файле для запуска соединения с Интернет?


1-1155977843
Strech
2006-08-19 12:57
2006.10.01
Активная форма


2-1158043349
Priest
2006-09-12 10:42
2006.10.01
Как прорисовать массив на канве


2-1158171272
greengeneral
2006-09-13 22:14
2006.10.01
Как вытащить <B>x</B> из Label7.Caption:= IntToStr(x);


2-1157984741
SamProf
2006-09-11 18:25
2006.10.01
TForm.onShow или как там





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский