Re: licencja Worda

Autor: bruner <brunerro_at_wp.pl>
Data: Wed 01 Mar 2006 - 11:17:08 MET
Message-ID: <du3sc6$gia$1@atlantis.news.tpi.pl>
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response

Podrapawszy się po głowie Michal Biek zatarł ręce i naskrobał:
> Piotr Palusiński log:
>> Użytkownik "misoch" <misoch@ms.inc> napisał w wiadomości
>> news:du0tok$rjf$1@inews.gazeta.pl
>>> Witam!
>>> Mam w pracy zainstalowane na komputerach wiele różnych wersji Worda
>>> (97, 2000, XP, 2003). Niestety nie wiem która licencja jest do
>>> której instalacji. Jak rozpoznać która licencja - nr seryjny -
>>> odpowiada któremu zainstalowanemu Wordowi?
>> Oj z tym bedziesz mial klopot, Office nie zpisuje seriala do
>> rejestru w postacji rozpoznawalnej.
>> Nadany jest jedynie: ProductID = np. 51367-010-7114645-02048
> [...]
> SRY za kłopot;-) ... no i np. Borland Delphi(n) czyli
> "DigitalProductId" vel (mój) serial Office 2k3 w Rejestrze, a może z
> Rejestru...!:-) ------
> unit ProductKey;
> {$DEFINE SeparateByMinus}
> [...]
> interface
> function GetProductKey: string;
> implementation
> uses Windows;
> function GetProductKey: string;
> const
> KeyPath =
> 'SOFTWARE\Microsoft\Office\11.0\Registration\{90110419-6000-11D3-8CFE-0150048383C9}';
> KeyValue = 'DigitalProductId';
> KeyChars: array [0..23] of Char =
> ('B','C','D','F','G','H','J','K','M','P','Q','R',
> 'T','V','W','X','Y','2','3','4','6','7','8','9');
> var
> InfoKey: HKEY;
> InfoType: DWORD;
> Data: array [1..$A8] of Byte;
> BinaryKey: array [0..14] of Byte;
> DecodedKey: array [0..24] of Char;
> DataSize: DWORD;
> A: Cardinal;
> i, j: Integer;
> begin
> if RegOpenKeyEx(HKEY_LOCAL_MACHINE, KeyPath, 0, KEY_READ, InfoKey) =
> ERROR_SUCCESS then
> begin
> DataSize := SizeOf(Data);
> if RegQueryValueEx(InfoKey, KeyValue, nil, @InfoType, @Data,
> @DataSize) = ERROR_SUCCESS then
> begin
> CopyMemory(@BinaryKey, @Data[$35], SizeOf(BinaryKey));
> for i := High(DecodedKey) downto Low(DecodedKey) do
> begin
> A := 0;
> for j := High(BinaryKey) downto Low(BinaryKey) do
> begin
> A := (A shl 8) + BinaryKey[j];
> BinaryKey[j] := A div 24;
> A := A mod 24;
> end;
> DecodedKey[i] := KeyChars[A];
> end;
> {$IFDEF SeparateByMinus}
> for i := Low(DecodedKey) to High(DecodedKey) do
> begin
> Result := Result + DecodedKey[i];
> if ((i + 1) mod 5 = 0) and (i < High(DecodedKey)) then
> Result := Result + '-';
> end;
> {$ELSE}
> Result := Result + DecodedKey;
> {$ENDIF}
> [...]
> end;
> end.
> -----
> ... i przyznaję rację. Jednak chyba łatwiej jest skorzystać z gotowych
> program(c)ów.

Program everest pokazuje klucze i do czego się tyczą (bynajmniej wersja
Ultimed edition)- dział programy-licencje

-- 
Pozdrawiam
bruner
"Rząd chce tylko naszego dobra, więc schowajmy nasze dobra głęboko" 
Received on Wed Mar 1 11:20:07 2006

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Wed 01 Mar 2006 - 11:42:00 MET