Du kannst natürlich die Adminrechte anfordern vom
UAC.
Dann machst du ein Knopf mit Schild "Seriennummer eingeben". Dieser Knopf impersonated dann zum Admin.
Sakura (Daniel) hat dazu Beispiel gemacht?!
Zumindest habe ich mal eine Demo gesehen.
Ich habe nach der Demo gesucht. Nichts Gefunden. Aber Das wäre schon net schlecht wenn man zur laufzeit einfach die Adminrechte abrufen kann um etwas aus zu führen.
Wo hassn das gesehen ?
So aber was anderes. Was mich nun total verwirrt. Ich hoffe auf Erleuchtung.
Ich hatte zum Lesen folgenden Code geschrieben :
Delphi-Quellcode:
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
Ver := inttostr(Version.Hauptversion) + '.' + inttostr(Version.Nebenversion);
Ver_new := ver;
OpenKeyReadOnly(RegPath+Ver);
if KeyExists('S/NR') then
MainConfig.SENR := ReadString('S/NR') else MainConfig.SENR := '';
if KeyExists('firma') then
MainConfig.Firma := ReadString('firma') else MainConfig.Firma := '';
CloseKey;
end;
so nun (Ich weiss ich wiederhole mich) in XP konnte die Funktion KeyExists mir ein true geben. Unter 7 ein False. (Vista noch nicht versucht)
nun habe ich eine naja mehr oder weniger eingebung gehabt und habe mir gedacht das Keys ja eigentlich nicht die Einträge sind sondern die Schlüssel "Ordner".
also kam Folgendes dabei raus :
Delphi-Quellcode:
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
Ver := inttostr(Version.Hauptversion) + '.' + inttostr(Version.Nebenversion);
Ver_new := ver;
OpenKeyReadOnly(RegPath+Ver);
if ValueExists('S/NR') then
MainConfig.SENR := ReadString('S/NR') else MainConfig.SENR := '';
if ValueExists('firma') then
MainConfig.Firma := ReadString('firma') else MainConfig.Firma := '';
CloseKey;
end;
So nun kann ich das wenn die Software als Admin gestartet ist speichern und als user lesen
Aber nun erkläre mir mal jemand das XP das akzeptiert hat obwohl es eigentlich ja schon von anfang an falsch programmiert wurde oder ?