Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Ingolder, вдогонку:
Цитата Ingolder:
первая - чтобы узнать текущий серийник »
Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion

For /F "Tokens=3" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DigitalProductId 2^>nul^|Find "REG_BINARY"') Do (
	Set Chars="BCDFGHJKMPQRTVWXY2346789"
	Set DigitalProductId=%%A
	Set DigitalProductId=!DigitalProductId:~104,30!
	For /L %%B In (0, 1, 24) Do (
		Set Var=0
		For /L %%C In (28, -2, 0) Do (
			Call Set /A Var=0x!DigitalProductId:~%%C,2!+!Var!*256
			Set /A BytesBeforeOffset=%%C
			Set /A BytesAfterOffset=%%C+2
			Set /A BytesChanged="(!Var!/24)&255"
			Call :ChangeDigitalProductId "!BytesBeforeOffset!" "!BytesChanged!" "!BytesAfterOffset!"
			Set /A Var=!Var!%%24
		)
		Set /A Num=!Var!+1
		Call Set LicenseKey=%%Chars:~!Num!,1%%!LicenseKey!
	)
)
If Not "!LicenseKey!"=="" (
	Echo !LicenseKey:~0,5!-!LicenseKey:~5,5!-!LicenseKey:~10,5!-!LicenseKey:~15,5!-!LicenseKey:~20,5!
) Else (
	Echo Get registry data error^^!
)
EndLocal
GoTo:EOF

:ChangeDigitalProductId
	Set HexChars=0123456789ABCDEF
	If %~2 LSS 16 (
		Set /A lBytePos=%~2
		Set /A hBytePos=0
	) Else (
		Set /A lBytePos=%~2%%16
		Set /A hBytePos=%~2/16
	)
	Call Set DigitalProductId=!DigitalProductId:~0,%~1!%%HexChars:~%hBytePos%,1%%%%HexChars:~%lBytePos%,1%%!DigitalProductId:~%~3!
Цитата Ingolder:
чтобы сменить на другой »
http://forum.oszone.net/showthread.php?t=83157
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:04, 17-08-2010 | #11