ďťż

Ładny brzuch

Witam!

Jak zapisać jakąś wartość Binara w Rejstrze np. na uaktywnienie zmiany nazwy kosza:
HKEY_CLASSES_ROOTCLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder
Nazwa: Attributes i problem jest z zapisem...

Aby uaktywnić zmianę nazwy kosza trzeba w Danych wpisać: 50 01 00 20
a żeby wyłączyć to: 40 01 00 20

W takiej postaci to jest zapisane w rejestrze... problem jest w tym że jak używam tego kodu:
var zmienna: String; begin zmienna:='50 01 00 20'; Reg:=Tregistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; Reg.OpenKey('CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder', true); Reg.WriteBinaryData('Attributes',zmienna,SizeOf(zmienna));

To wychodzą jakieś bzdury! bardzo proszę o pomoc!

Anonymous AdSoft



A próbowałeś tak:
var   reg: TRegistry; begin   reg := TRegistry.Create;   reg.RootKey:=HKEY_CLASSES_ROOT;   reg.OpenKey('CLSID{645FF040-5081-101B-9F08-00AA002F954E}', false);   reg.WriteString('', 'Ąmietnik');   reg.CloseKey; end;

www.lewbar.prv.pl

zmienna:array[0..3]of char; begin zmienna:=#$50#1#0#$20;Ale to nie umożliwi zmiany nazwy kosza :!

--------------------
-=[ Delphi rUlzZz ]=-

cytat:Cyrkiel napisał:

zmienna:array[0..3]of char; begin zmienna:=#$50#1#0#$20;Ale to nie umożliwi zmiany nazwy kosza :!

--------------------
-=[ Delphi rUlzZz ]=-

a niby co jak sprawdzałem... w WinXP oczywiście...

Anonymous AdSoft



Nie zauważasz różnicy? W tym "zmienna:='50 01 00 20';" zapisujesz cyfry ze spacjami do stringa (rozmiar=11 bajtów), a w tym "zmienna:=#$50#1#0#$20;" znaki o kodach 80, 1, 0 i 32 (rozmiar=4 bajty) :!

--------------------
-=[ Delphi rUlzZz ]=-

a masz jakiś inny pomysł?? Jak to zmienie w regedit i zakne rejestr potem przechodze na pulpit i kilkam raz na kosz potem F2 i działa, a gdy zmienie spowrotem to juz nie działa... Problem w tym jak to zmienić przez Dephi (Programowo)...

Anonymous AdSoft

A spróbuj tak:

var bufor : array[0..3] of byte;

{...}

bufor[0] := $50;
bufor[1] := $01;
bufor[2] := $00;
bufor[3] := $20;

{...}

Reg.WriteBinaryData('Attributes', bufor, SizeOf(bufor));

Napisałem to "na sucho" - ale powinno zadziałać.

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

Wielkie dzięki OXI jesteś boski... Wszystko działa :);)

Anonymous AdSoft

Sorki wielkie, napisałem (u siebie) WriteBinaryData, a nie WriteString, i potem zapomniałem tego w poście napisać :oops:

--------------------
-=[ Delphi rUlzZz ]=-

cytat:Cyrkiel napisał:

Sorki wielkie, napisałem (u siebie) WriteBinaryData, a nie WriteString, i potem zapomniałem tego w poście napisać :oops:

--------------------
-=[ Delphi rUlzZz ]=-

nic nie szkodzi, przyjanmniej problem jest załatwiony... Napiszcie to do FAQ bo z tego o widziałem to dużo ludzi ma z tym problem :)

Anonymous AdSoft

cytat:
Anonymous:
napiszcie to do FAQ bo z tego o widziałem to dużo ludzi ma z tym problem

Ty też możesz to napisać, przecież to wolny kraj :!

www.lewbar.prv.pl

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •