Ĺ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
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