Главная страница
    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.012 c
1-1156153706
DelphiLexx
2006-08-21 13:48
2006.10.01
Создать отменить и восстановить для редактора


15-1158011449
Ньюби
2006-09-12 01:50
2006.10.01
Программы автоматического поиска ошибок в коде ?


2-1158250576
prodeximus
2006-09-14 20:16
2006.10.01
Чтение данных поля из БД


5-1139913121
max1000
2006-02-14 13:32
2006.10.01
Возвращаясь к Tpanel .Зависает Delphi.


3-1154225520
Antoxa2005
2006-07-30 06:12
2006.10.01
Подскажите, а можно ли использовать транзакции при работе ч-зODBC





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