20. april 2001 - 16:08Der er
6 kommentarer og 1 løsning
Registreringsdatabase
Hjælp. Hvordan skriver man til registreringsdatabasen igennem delphi? Hvordan udtrækker man information fra registringsdatabasen gennem delphi? Jeg har lavet et sharewareprogram, der kræver en \"key\" for at det ikke længere er shareware og fungerer fuldt ud. Derfor går jeg ud fra at det er smartest at skrive til registreringsdatasen frem for at skrive til en normal db da brugeren jo så lettere selv kan gå ind og indtaste de korrekte oplysninger der. Ehm. Ja det var vist det, forvirret?
Du skal bruge objektet TRegistry. Prøv at søge efter den i hjælp-filen, da den er ret ligetil at bruge, i forhold til andre komponenter i Delphi. Hvis du skal have hjælp, så skal du bare sige til.
Synes godt om
Slettet bruger
20. april 2001 - 17:56#2
Ok det virker umiddelbart ikke så svært igen. Men jeg er også i tvivl om, om det egentlig er den måde man håndterer det med koder på sharewareprogrammer? Havde tænkt mig at når man startede mit program generede den automatisk et tal mellem fx 10-200 og skrev ned i database eller regdatabase. Det tal skulle man fx opgive for at få koden til at unlocke softwaren med. Unlock koden skal naturligvis genereres vha det tal programmet genererer i starten, såldes at den kan bruges til at unlocke netop dette program på denne computer med. Men er det smartere bare at skrive det ned i en database frem for at bruge reg?
uses registry; //plus alt det der normalt er! Const RegKey = \'software/ditfirmanavn/dirprogramnavn\';
procedure SetShareware(is_Shareware: boolean; AKey: string); //procedure til at sætte om program er shareware. var reg: TRegistry; begin reg := TRegistry.Create with reg do begin Openkey(RegKey, True) //åbner stien i registreringsdatabasen if not is_Shareware then //er true hvis den sættes sådan if AKey = \'dinkode\' then begin Showmessage(\'Registrering fuldført\'); writestring(\'Key\', AKey); end else showmessage(\'forkert registreringskode\') end; end;
procedure IsShareware: boolean; var reg: TRegistry; begin reg := TRegistry.Create with reg do begin Openkey(RegKey, True) //åbner stien i registreringsdatabasen if readString(\'Key\') = \'Dinkode\' then Result := True else Result := False; end; end;
procedure TForm1.OnShow(sender: TObject); begin if not isShareware then //slå dine kontroller til else //slå dine kontroller fra end;
procedure TButton1.onClick(sender: TObject); begin SetShareware(False, edit1.text) end;
Det burde være det, MEN: Det er ikke blevet checket... beklager, men sidder ikke ved en windows maskine!
Hvis du har tænkt dig at gemme din unlock key i Registreringsdatabasen, skal du enten gemme den et godt sted, og/eller kryptere den (det sidste er det bedste). Registreringsdatabasen plejer at være en af de første steder man kigger, hvis man vil prøve at snyde sig udenom at betale for sharewaren.
Det er rigtigt, ikke under HKEY_LOCAL_USER men istedet HKEY_LOCAL_MACHINE, kald heller ik værdien for \'Key\' men noget alment!
/Kaspikov
Synes godt om
Slettet bruger
20. april 2001 - 20:39#6
WOW, det var en masse nyttig information på en gang. Tak til jer begge 2. Jeg giver kaspikov 40 af pointene pga den syge syge procedure. Tak for hjælpen.
Hvis du har flere spørgsmål, så send en mail til: casper.steinmann@wanadoo.dk
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.