[delphi] binair naar register schrijven

Pagina: 1
Acties:

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Topicstarter
Ik zit met een probleem, ik wil met een programmatje naar het register schrijven als binair, dus dat je het in regedit krijgt te zien als REG_BINARY. Ik heb hier een stuk code en op een of andere manier doet hij niet wat ik graag zou willen.
Ik weet dat Gvalue als string word gezien maar ik weet niet hoe ik het moet omzetten, zodat ik het als binair in het register kan zetten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button3Click(Sender: TObject);

var
  gvalue: string;

begin
  Gvalue:= 'a0,3d,79,d2,3e,19,2f,aa,09,bd,62,72,47,44,c5,74,bf,
                  cb,6c,2b,c7,16,7e,13,28,f1,91,53,e3,4f,b0,9a';
  Reg:= TRegistry.Create;
  Reg.Rootkey:= HKEY_CURRENT_USER;
  Reg.Openkey('\software\kazaa', true);
  Reg.WriteBinaryData('LastSearchHash', Gvalue , 32);
  Reg.Closekey;
  Reg.Free;
end;

Je kunt het al wel raden, het word een programmatje dat je kazaa prioriteiten veranderd, maar hoe krijg dat binair in het register. En ik bedoel niet dat die a0,3d,79,enzovoort word omgezet naar binair, maar die waarden zijn al binair.

[ Voor 3% gewijzigd door eghie op 06-01-2003 19:36 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-08 12:42

Janoz

Moderator Devschuur®

!litemod

Die waarden zijn helemaal niet binair. Kijk eens wat voor type Gvalue is?

Weet je toevallig wat binair inhoud? Deze reeks lijkt me meer hexadecimaal

offtopic:
(sorry, echt behulpzamer wil ik niet zijn voor lame kazaa cheaters)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • jopiek
  • Registratie: September 2000
  • Laatst online: 21-08 19:56

jopiek

Tja... 'ns ff denken.

Janoz schreef op 06 januari 2003 @ 19:57:
Die waarden zijn helemaal niet binair. Kijk eens wat voor type Gvalue is?

Weet je toevallig wat binair inhoud? Deze reeks lijkt me meer hexadecimaal

offtopic:
(sorry, echt behulpzamer wil ik niet zijn voor lame kazaa cheaters)
cq IS hexadecimaal ;)

voor de duidelijkheid, binair is 01001010101 etc. bijv.

Cogito Ergo Credo


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button3Click(Sender: TObject);
type TGValue = array[0..2] of Byte;
const CGValue: TGValue = ($a0, $3d, ...);
var Reg: TRegistry;
    GValue: TGValue;
begin
  Reg:= TRegistry.Create;
  try
    Reg.Rootkey:= HKEY_CURRENT_USER;
    Reg.Openkey('\software\kazaa', True);
    GValue := CGValue;
    Reg.WriteBinaryData('LastSearchHash', GValue, SizeOf(GValue));
    Reg.Closekey;
  finally
    Reg.Free;
  end;
end;

[ Voor 4% gewijzigd door LordLarry op 06-01-2003 20:17 ]

We adore chaos because we like to restore order - M.C. Escher


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 05:48

Tomatoman

Fulltime prutser

Wat jij aan het wegschrijven bent, is een string die bestaat uit 126 letters - hij staat immers tussen aanhalingstekens. Wat wel gaat:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
type
  TKazaaBytes = array[0..31] of Byte;

procedure TForm1.Button3Click(Sender: TObject);
const
  Buffer: TKazaaBytes = (
    $A0, $3D, $79, $D2, $3E, $19, $2F, $AA,
    $09, $BD, $62, $72, $47, $44, $C5, $74,
    $BF, $CB, $6C, $2B, $C7, $16, $7E, $13,
    $28, $F1, $91, $53, $E3, $4F, $B0, $9A);
var
  GValue: TKazaaBytes;
begin
  GValue := Buffer;
  with TRegistry.Create do
  try
    Rootkey := HKEY_CURRENT_USER;
    Openkey('\software\_test', True);
    WriteBinaryData('LastSearchHash', GValue, SizeOf(GValue));
    Closekey;
  finally
    Free;
  end;
end;

Let ook op de try-finally-end constructie, die ervoor zorgt dat je geen geheugenlek hebt als er een exception optreedt op regel 17 t/m 20.

[Edit]
LordLarry, heb jij bij mij gespiekt of zo?

[ Voor 5% gewijzigd door Tomatoman op 06-01-2003 20:25 ]

Een goede grap mag vrienden kosten.


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

tomatoman schreef op 06 January 2003 @ 20:21:
[Edit]
LordLarry, heb jij bij mij gespiekt of zo?
hehe, nee :). Lijkt zeker sterk op elkaar Mijn edit was alleen code=delphi.

We adore chaos because we like to restore order - M.C. Escher


  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Topicstarter
ik weet wel dat binair 1-tjes en 0-tjes zijn, maar in het register word het binair genoemt en ook met writebinary.

Verwijderd

kan ook wel met een string hoor
alleen moet je een pointer meegeven
ik doe het even uit mijn hoofd, maar ik denk
Reg.WriteBinaryData('LastSearchHash', @Gvalue[1] , 32);

en moet je je string vullen met #

GValue := #21#22#23; //etc

[ Voor 20% gewijzigd door Verwijderd op 06-01-2003 20:53 ]


  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Topicstarter
Ik heb het nu op de manier van tomatoman gedaan, omdat die ik het meest snap en hij doet het.
thnx allemaal.
Janoz schreef op 06 January 2003 @ 19:57:
offtopic:
(sorry, echt behulpzamer wil ik niet zijn voor lame kazaa cheaters)
Ik gebruik het eigenlijk ook voor leerzame doeleinden, want ik download nooit met kazaa. Ik gebruik emule. Maar wat is er lame aan als ik vragen mag, want je hindert er andere gebruikers niet mee, of wel :?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-08 12:42

Janoz

Moderator Devschuur®

!litemod

eghie schreef op 06 January 2003 @ 20:58:
Ik heb het nu op de manier van tomatoman gedaan, omdat die ik het meest snap en hij doet het.
thnx allemaal.


[...]

Ik gebruik het eigenlijk ook voor leerzame doeleinden, want ik download nooit met kazaa. Ik gebruik emule. Maar wat is er lame aan als ik vragen mag, want je hindert er andere gebruikers niet mee, of wel :?
....het word een programmatje dat je kazaa prioriteiten....
Prioriteit verdien je op een andere manier dan het aanpassen van een regkey.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1