[ Vdjuric @ 12.08.2005. 17:21 ] @
Kako da procitam podatke o tome na koga je registrovan windows (user i organisation), ali da radi na svim verzijama (Win95/98/ME/2K/XP)? Ako neko zna, treba mi i SN od windowsa na kojem se program izvrsava.

Pozdrav :)
[ borovac @ 12.08.2005. 17:46 ] @
Code:

var
IsWinNT:boolean;
const
  HKLM_CURRENT_VERSION_WINDOWS = 'SOFTWARE\Microsoft\Windows\CurrentVersion';
  HKLM_CURRENT_VERSION_NT      = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion';

// trebaš dobiti verziju windowsa, odnosno platformu, pa ako je NT korisiš drugu konstantu inače koristiš prvu

function REG_CURRENT_VERSION: string;
begin
  if IsWinNT then
    Result := HKLM_CURRENT_VERSION_NT
  else
    Result := HKLM_CURRENT_VERSION_WINDOWS;
end;

{$IFDEF MSWINDOWS}
function GetRegisteredCompany: string;
begin
  { TODO : check for MSDN documentation }
  Result := RegReadStringDef(HKEY_LOCAL_MACHINE, REG_CURRENT_VERSION, 'RegisteredOrganization', '');
end;

function GetRegisteredOwner: string;
begin
  { TODO : check for MSDN documentation }
  Result := RegReadStringDef(HKEY_LOCAL_MACHINE, REG_CURRENT_VERSION, 'RegisteredOwner', '');
end;
[ Vdjuric @ 13.08.2005. 01:07 ] @
hvala :)
[ Vdjuric @ 13.08.2005. 01:22 ] @
Citat:
borovac
Code:

...
{$IFDEF MSWINDOWS}
...
function GetRegisteredCompany: string;
begin
  { TODO : check for MSDN documentation }
  Result := RegReadStringDef(HKEY_LOCAL_MACHINE, REG_CURRENT_VERSION, 'RegisteredOrganization', '');
end;


U kojem unitu se nalazi funkcija "RegReadStringDef" ? Nema je u "Registry" unitu.

Poz
[ borovac @ 13.08.2005. 14:41 ] @
Nemam pojma ali ovo možeš zamijeniti funkcijom i Registry unita, ili možeš koristiti API funkciju (RegQueryValueEx).
[ Vdjuric @ 06.09.2005. 08:30 ] @
Ok...ovo je proradilo ali samo kada je korisnik ima administratorske privilegije.
Kako da ga nateram da proradi i kada je logovan obican user?

Code:

Function GetRegisteredCompany: string;
Var
 Reg     :TRegistry;
 KeyName :String;
Begin
 Result:='';
 TRY
  Reg:=TRegistry.Create;
  Reg.RootKey:=HKEY_LOCAL_MACHINE;
  KeyName:=HKLM_Current_Version_NT;

  If Reg.OpenKey(KeyName, False)
   Then Begin
         Result:=Reg.ReadString('RegisteredOrganization');
        End
   Else Begin
         KeyName:=HKLM_Current_Version_WINDOWS;
         If Reg.OpenKey(KeyName, False)
          Then Result:=Reg.ReadString('RegisteredOrganization')
          Else Result:='Unknown';
        End;
 FINALLY Reg.Free;
 END;
End;